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" с выводом найденных записей на экран.
ЛИТЕРАТУРА