
- •Записи
- •Описание записи
- •Примеры описания записей
- •Примеры описания записей
- •Примеры описания записей
- •Действия с записями
- •Оператор присоединения
- •Примеры использования оператора присоединения With
- •Пример использования записей
- •procedure VVOD(var s:spisok;var k:integer);
- •procedure SORT_ANKETA(var s:spisok; k:integer);
- •procedure VYVOD(s:spisok;k:integer);
- •procedure VYVOD_pidpriemstvo(s:spisok;k:integer);
- •BEGIN clrscr; VVOD(s,k); VYVOD(s,k);
- •Записи с вариантной частью
- •Записи с вариантной частью
- •Пример вариантной записи
- •Размещение в памяти
- •Файлы
- •Файлы
- •Хранение данных:
- •Организация ввода-вывода
- •Процедуры и функции
- •IOResult:
- •Текстовые файлы
- •Подпрограммы для текстовых файлов
- •Бестиповые и компонентные файлы
- •Бестиповые файлы
- •Пример
- •Компонентные файлы
- •Прямой доступ
- •Типизированные файлы
- •Процедуры и функции, связанные с позиционированием указателя текущей записи
- •Пpиклад: файл містить перелік назв книг та їх авторів. Знайти всі книги, що
- •begin
- •{Пошук книг наданого автора)
- •ПРИМЕРЫ
- •Создание нового файла
- •ВЫВОД НА ДИСПЛЕЙ
- •УДАЛЕНИЕ ЗАПИСЕЙ ИЗ ФАЙЛА
- •РЕДАКТИРОВАНИЕ ЗАПИСИ
- •ДОБАВЛЕНИЕ ЗАПИСИ В КОНЕЦ ФАЙЛА
- •СОЗДАНИЕ ТЕКСТОВОГО ФАЙЛА
- •СОРТИРОВКА ТИПИЗИРОВАННОГО ФАЙЛА С ИСПОЛЬЗАВАНИЕМ
- •СОЗДАНИЕ МЕНЮ В ГЛАВНОЙ ПРОГРАММЕ

Записи
1

Описание записи
type имя_типа = record описание 1-го поля записи; описание 2-го поля записи;
...
описание n-го поля записи; end;
2

Примеры описания записей
type goods = record name : string [20]; price : real; number : integer;
end;
var |
g1, g2 : goods; |
student : record
name : string [30]; group : byte;
marks : array [1 .. 4] of byte;
end;
3

Примеры описания записей
type goods = record name : string [20]; price : real; number : integer;
end;
var g1, g2 : goods;
stock : array [1 .. 100] of goods;
student : record name : string [30]; group : byte;
marks : array [1 .. 4] of byte; end;
Примеры обращения к элементу (полю) записи:
<имя записи>.<имя поля записи> g1.name student.marks[2] stock[40].price
4

Примеры описания записей
|
Type |
|
|
Date = |
record |
|
day |
: 1..31; |
|
month : 1..12; |
|
|
year |
: 1940..2000 |
end;
Person = |
record |
|
name |
: string [60]; |
|
sex |
: (male, female); |
|
birthdate |
: Date; |
|
end; |
|
|
5

|
Примеры описания записей |
|
Type |
|
Person = record |
name : string [60];
|
sex |
: (male, female); |
||
|
birthdate |
: |
record |
day : 1..31; month : 1..12;
year : 1940..2000 end;
end;
var p1, p2 : Person;
anketa : array [1 .. 100] of Person;
Примеры обращения к элементу (полю) записи:
<имя записи>. <имя записи>.<имя поля записи>
p1. birthdate .day
anketa[40]. birthdate . year
6

Действия с записями
type goods = record name : string [20]; price : real; number : integer;
end;
Инициализация записей: const g : goods = ( name : ’boots’;
price : 200; number : 10 );
var g1, g2 : goods;
stock : array [1 .. 100] of goods;
Действия над записями g1 := g2;
g2 := stock[3];
Действия над элементами (полями) записями g1.price := 200;
stock[4].price:=60;
7

Оператор присоединения
With
with <имя записи>do begin
<операторы, содержащие
только имена полей записи>
end;
8

Примеры использования оператора присоединения With
type goods = record name : string [20]; price : real; number : integer;
end;
var g1, g2 : goods;
stock : array [1 .. 100] of goods;
Примеры обращения к элементу (полю) записи без оператора With : <имя записи>.<имя поля записи>
g1.price := 200; g1.number := 10; stock[1].price := 200; stock[1].number := 10;
with g1 do begin
price := 200; number := 10
end;
with stock[1] do begin
price := 200; number := 10
end; |
9 |

Пример использования записей
Завдання: Маємо інформацію про розподіл молодих фахівців за останні п’ять
років у вигляді : прізвище, ім’я, по-батькові, рік закінчення університету, місце та мі працевлаштування, посада. Вивести перелік підприємств – місць
працевлаштування |
|
|
Program АnketaP; |
|
|
uses crt; |
|
|
const n=50; |
|
|
type |
|
|
|
anketa=record |
|
|
FIO:string[10]; |
|
|
data:integer; |
|
|
misto:string[10]; |
|
|
pidpriemstvo:string[10]; |
|
|
pocada:string[10]; |
|
|
end; |
|
|
spisok=array[1..n] of anketa; |
|
var |
s:spisok; |
|
|
|
|
|
k:integer; |
10 |
|
|