WITH <Имя записи> DO

Begin

<Операторы обращения к элементам записи>

End;

Для нашего примера используем этот оператор при суммировании трех оценок i-го студента:

. . .

Sum:=0;

With Spisok[i] do

Begin

For j:=1 to 3 do

Sum:=Sum+Ball[j];

. . .

End;

 

 

Рассмотрим пример использования записи внутри другой записи.

Пусть имеется структура:

№ п/п Ф.И.О. Дата рождения Пол Национальность

Причем поле дата рождения состоит из полей: число, месяц, год. Тогда описание в программе будет иметь вид:

Type

Date=Record

Days:1..31;

Month:1..12;

Year:1900..2000;

End;

Tzap=Record

Nom:word;

FIO:string[40];

DateR:Date;

Pol:(Man,Woman);

Nac:string[20];

End;

Var Zap:Tzap;

Для того чтобы обратиться к элементам записи дата рождения, необходимо записать:

D:=Zap.DateR.Days;

M:= Zap.DateR.Month;

G:= Zap.DateR.Year;

или с использованием оператора присоединения

With Zap.DateR do

Begin

D:=Days; M:=month; G:=Year;

End;

Типизированные константы - записи имеют вид:

<Имя константы> : Тип = (Список значений полей записи);

Список значений полей записи - это список из последовательностей вида: Имя поля: Константа;

Например:

1) Type

Tdate=Record

Day:1..31;

Month:1..12;

Year:1000..2000;

End;

Const Date:Tdate=(day:25;month:10;year:1999);

2) Type

Tkoord=record

Xk,Yk:real;

end;

Tmas=array[1..3] of Tkoord;

Const Maskoord:Tmas=((Xk:0.0; Yk:0.0),

Xk:1.5; Yk:2.5),

Xk:3.0; Yk:4.5));

Типовой пример

Дан список, содержащий N записей (N£100) следующей структуры:

 

№ рейса Пункт отправления Пункт назначения День недели Время отправления Час Мин Цена билета
5 символов 15 символов 15 симв. 1..7 0..23 0..59 Real

1) Ввести заданый список с экрана в массив записей Spis.

2) Ввести искомый номер рейса - Isk_nom.

3) Найти в списке рейс с заданным номером.

4) Вывести информацию о найденном рейсе на экран.

 

Текст программы

Uses crt;

Type

T_Time=record

Hour:0..23;

Min:0..59;

end;

tzap=record {Описание типа для одной записи списка}

nom:string[5];

p1,p2:string[15];

day:1..7;

time:T_Time;

price:real;

end;

Var Spis:array[1..100]of tzap; {Описание списка}

N,i:byte;

Isk_nom:string[5];

Begin

Write(' Введите число записей в списке N = ');

Readln(N);

Writeln('Введите список по полям - каждое поле с новой строки');

For i:=1 to N do

With Spis[i] do

begin

Write(' Номер очередного рейса - 5 символов ');

Readln(nom);

Write(' Пункт отправления - 15 символов ');

Readln(p1);

Write(' Пункт назначения - 15 символов ');

Readln(p2);

Write(' День недели - от 1 до 7 ');

Readln(day);

Write(' Время отправления - часы (от 0 до 23) и

минуты (от 0 до 59), через пробел ');

Readln(time.hour,time.min);

Write(' Цена билета = ');

Readln(price);

end;

writeln(' введите искомый номер рейса - 5 символов ');

Readln(Isk_nom);

{Oрганизация поиска заданного рейса в массиве записей Spis}

for i:=1 to N do

with Spis[i] do

if nom = Isk_nom then

begin

writeln(' Рейс найден');

writeln(nom,' ',p1,' ',p2,' ',day,' ',time.hour,':',time.min,' ',price);

readkey;

halt;

end;

writeln(' Рейс не найден');

readkey;

End.

Примечание: При вводе символьной информации необходимо учитывать, что пробел также является символом.

 

 

Варианты заданий

В А Р И А Н Т 1

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Шифр книги Ф.И.О. авторов Название Год

тип строка тип строка тип строка издания

5 символов 20 символов 15 символов целое

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, изданных в 1960 году и шифром, начинающимся с буквы "А" с выводом найденных записей на экран.

 

В А Р И А Н Т 2

1. Дан список, содержащий не менее 10 записей, каждая из которых имеетструктуру:

Шифр товара Наименование Цена (в руб.) Количество

тип строка тип строка вещественное экземпляров

5 символов 20 символов число целое число

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск товаров, имеющих цену меньше 20000 руб. и количеством экземпляров больше 100 с выводом найденных записей на экран.

 

В А Р И А Н Т 3

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Номер рейса Пункт отправления Пункт назначения Дни

тип строка тип строка тип строка полетов

5 символов 10 символов 10 символов от 1 до 7

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск рейсов, вылетающих из города " Волгоград" в среду(3день) с выводом найденных записей на экран.

 

В А Р И А Н Т 4

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Домашний адрес Номер участка Год

тип строка тип строка тип рождения

15 символов 20 символов integer 1900..2000

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех граждан из списка, родившихся до 1950 года и номером участка = 55 с выводом найденных записей на экран.

В А Р И А Н Т 5

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Шифр товара Наименование товара Цена(руб.) Признак

тип строка тип строка число типа наличия или

5 символов 20 символов real отсутствия

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех товаров, имеющихся в наличии и цена которых не превышает 15000 руб., с выводом найденных записей на экран.

В А Р И А Н Т 6

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Факультет Группа Год рождения

20 символов 5 символов 6 символов целое число

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех студентов, группы " 97ВС1", родившихся в 1979 году с выводом найденных записей на экран.

В А Р И А Н Т 7

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. авторов Название Год Шифр

тип строка тип строка издания строка

20 символов 20 символов целое 8 символов

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, названия которых начинаются с буквы " П" и изданных до 1990 года с выводом найденных записей на экран.

В А Р И А Н Т 8

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. авторов Название Год Шифр

тип строка тип строка издания строка

20 символов 20 символов целое 8 символов

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, поле шифр которых начинаются с буквы " Т" и изданных после 1990 года с выводом найденных записей на экран.

В А Р И А Н Т 9

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Номерр рейса Пункт отправления Пункт назначения Дни

тип тип строка тип строка полетов

integer 20 символов 10 символов от 1 до 7

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех рейсов с номерами большими, чем 50, и вылетающими в " Адлер", с выводом найденных записей на экран.

В А Р И А Н Т 10

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Домашний адрес Номер участка Год

тип строка тип строка тип рождения

15 символов 30 символов integer 1900..2000

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех граждан, родившихся до 1970 года и фамилия которых начинается с буквы " П" с выводом найденных записей на экран.

 

В А Р И А Н Т 11

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Шифр книги Ф.И.О. авторов Название Год

тип строка тип строка тип строка издания

5 символов 20 символов 15 символов целое

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, изданных до 1950 году и шифром " СС11" с выводом найденных записей на экран.

В А Р И А Н Т 12

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Шифр товара Наименование Цена(в руб.) Количество

тип строка тип строка вещественное экземпляров

5 символов 20 символов число целое число

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск товаров, имеющих цену не меньше 20000 руб. и количеством кземпляров больше 180 с выводом найденных записей на экран.

В А Р И А Н Т 13

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Номер рейса Пункт отправления Пункт назначения Дни

тип строка тип строка тип строка полетов

5 символов 12 символов 10 символов от 1 до 7

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск рейсов, вылетающих из города " Владивосток" в 1 или 3 день недели с выводом найденных записей на экран.

В А Р И А Н Т 14

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Домашний адрес Номер участка Год

тип строка тип строка тип рождения

15 символов 20 символов integer 1900..2000

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех граждан из списка, родившихся до 1980 года и номером участка не более 100 с выводом найденных записей на экран.

 

В А Р И А Н Т 15

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Шифр товара Наименование товара Цена(руб.) Признак

тип строка тип строка число типа наличия или

5 символов 20 символов real отсутствия

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех товаров, которых нет в наличии и имеющих цену, не меньше 25000 руб. с выводом найденных записей на экран.

В А Р И А Н Т 16

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Факультет Группа Год рождения

20 символов 5 символов 6 символов целое число

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех студентов, группы " 97ВС2", родившихся до 1980 году с выводом найденных записей на экран.

В А Р И А Н Т 17

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. авторов Название Год Шифр

тип строка тип строка издания строка

20 символов 20 символов целое 8 символов

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, фамилии авторов которых начинаются с буквы " В", и изданных после 1990 года с выводом найденных записей на экран.

В А Р И А Н Т 18

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. авторов Название Год Шифр

тип строка тип строка издания строка

20 символов 20 символов целое 8 символов

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, поле шифр которых начинаются с буквы " Т" и изданных в 1990 году с выводом найденных записей на экран.

В А Р И А Н Т 19

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Номер рейса Пункт отправления Пункт назначения Дни

тип тип строка тип строка полетов

integer 20 символов 10 символов от 1 до 7

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех рейсов с номерами меньшими, чем 100 и вылетающими в из пункта " Краснодар" с выводом найденных записей на экран.

В А Р И А Н Т 20

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Домашний адрес Номер участка Год

тип строка тип строка тип рождения

15 символов 30 символов integer 1900..2000

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех граждан, родившихся после 1970 года и фамилия которых начинается с буквы " А" с выводом найденных записей на экран.

В А Р И А Н Т 21

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Название Ф.И.О. авторов Год

тип строка тип строка издания

15 символов 20 символов целое

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, изданных в 1987 году и автором, начинающимся с буквы "А" с выводом этих записей на экран.

В А Р И А Н Т 22

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Наименование Цена (в руб.) Количество

тип строка вещественное экземпляров

20 символов число целое число

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск товаров, имеющих цену больше 100 руб. и количеством экземпляров меньше 10 с выводом найденных записей на экран.

В А Р И А Н Т 23

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Номер рейса Пункт отправления Пункт назначения Дни

тип строка тип строка тип строка полетов

5 символов 10 символов 10 символов от 1 до 7

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск рейсов, прилетающих в город " Воркута" в понедельник (1день) с выводом найденных записей на экран.

В А Р И А Н Т 24

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Домашний адрес Номер участка Год

тип строка тип строка тип рождения

15 символов 10 символов byte 1910..2000

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех граждан из списка, родившихся после 1991 года и номером участка = 3 с выводом найденных записей на экран.

В А Р И А Н Т 25

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Шифр товара Наименование товара Цена(руб.) Признак

тип строка тип строка число типа наличия или

3 символов 10 символов integer отсутствия

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех товаров, имеющихся в наличии и цена которых превышает 50 руб., с выводом найденных записей на экран.

В А Р И А Н Т 26

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. Отделение Группа Год рождения

15 символов 5 символов 5 символов 1970..2000

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск всех студентов, группы " ВМ06", родившихся в 1990 году с выводом найденных записей на экран.

В А Р И А Н Т 27

1. Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:

Ф.И.О. автора Название Год Шифр

тип строка тип строка издания строка

15 символов 20 символов integer 3 символа

2. Разработать программу, выполняющую следующие функции:

- ввод данного списка в массив записей;

- вывод массива записей на экран;

- поиск книг, названия которых начинаются с буквы " В", изданных после 2000 года и шифр которых начинается с буквы " Z" с выводом найденных записей на экран.

ЛИТЕРАТУРА