Как работать с записями в паскале

Опубликовано: 17.09.2024

Массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, указывая положение точки в пространстве, мы можем воспользоваться одним и тем же типом для указания ее координат, но, описывая человека, мы должны указать его имя, рост, цвет глаз и волос, то есть в одном описании объединяем разнородную информацию.

Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называют записью (record). В языке Паскаль запись определяется путем указания служебного слова record и перечисления входящих в запись элементов с указанием типов этих элементов.

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

Например, анкетные данные об ученике школы могут быть представлены в виде информационной структуры

Такая структура называется двухуровневым деревом. В Паскале эта информация может храниться в одной переменной типа record (запись). Задать тип можно следующим образом:

где record – служебное слово, а <имя_типа> и <имя_поля> - правильные идентификаторы языка Паскаль.

Описание анкеты ученика в Паскале будет выглядеть так:

Пример фрагмента программы описания записи Паскаля

Такая запись Паскаля, так же как и соответствующее ей дерево, называется двухуровневой.

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

Пример фрагмента программы описания записи Паскаля

После того, как определен тип записи Паскаля, можно определять переменную этого типа. Переменная определяется путем задания ее идентификатора и указания типа.

Теперь нам нужно узнать, как правильно получать доступ к элементам записи Паскаля. Элементы записи называются полями, а обращение к ним производится через использование их имен – идентификаторов полей. Практически, поля записи обрабатываются точно так же, как и любые другие переменные. Но в отличие от обычной переменной имена полей должны предваряться ссылкой на идентификатор записи Паскаля и отделяться от него точкой. Такая запись называется уточняющий идентификатор:

Например, чтобы обратиться к полю cl переменной pupil , необходимо указать следующее составное имя:

Обращение к полю cl

Использование полей записи Паскаля в выражениях и условиях идентично использованию обычных переменных.

Операции над записями

Единственная операция, которую можно произвести над однотипными записями Паскаля – это *присваивание*.

Все другие операции производятся над отдельными полями записи.

Пример решения задачи с использованием записей

Рассмотрим для начала простейший пример заполнения записи Паскаля и вывода ее на экран.

Пусть нам необходимо заполнить сведения об ученике (Ф.И.О., дата рождения, адрес, класс и группа), а затем вывести эти сведения на экран.

Пример программы c записью Паскаля

А теперь слегка усложним задачу. Пусть нам необходимо иметь сведения о многих учениках, например, вашего класса. Следовательно, необходимо организовать массив записей Паскаля. А затем из общего списка вывести фамилии учеников 11-1-го класса.

Пример программы c записью Паскаля

Оператор присоединения или как избавиться от префикса

Префикс – обязательная предшествующая часть составного идентификатора для имен полей в структуре типа запись Паскаля. Очень часто у программиста возникает желание не указывать префикс в имени полей, например, когда идет постоянное использование одних и тех же записей. В языке Паскаль предусмотрена такая возможность, реализуемая при помощи оператора присоединения, который в общем виде выглядит так:

Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end ).

Например, фрагмент из предыдущей программы с использованием оператора присоединения будет выглядеть так:

<code pascal|Пример фрагмента программы c записью и префиксом Паскаля> for I:=1 to 100 do

Как мы уже выяснили, массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, указывая положение точки в пространстве, мы можем воспользоваться одним и тем же типом для указания ее координат, но, описывая человека, мы должны указать его имя, рост, цвет глаз и волос, то есть в одном описании объединим разнородную информацию. Точно так же, описывая автомобиль, мы укажем не только его марку, но и год выпуска, модификацию, да и цвет кузова может нас заинтересовать. Составляя автоматизированный каталог книгохранилища, мы для каждой книги должны указать ее название, имя автора, область знания, количество страниц, год издания, а также, возможно, признак нахождения на руках или в хранилище.

Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называют записью (record). В языке Паскаль запись определяется путем указания служебного слова record и перечисления входящих в запись элементов с указанием типов этих элементов.

Запись Паскаля – структурированный комбинированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа.

Например, анкетные данные о студенте вуза могут быть представлены в виде информационной структуры

Такая структура называется двухуровневым деревом. В Паскале эта информация может храниться в одной переменной типа record (запись). Задать тип можно следующим образом:

где record – служебное слово, а <имя_типа> и <имя_поля> - правильные идентификаторы языка Паскаль.

Описание анкеты студента в Паскале будет выглядеть так:

Пример фрагмента программы описания записи Паскаля

Такая запись Паскаля, так же как и соответствующее ей дерево, называется двухуровневой.

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

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

Пример фрагмента программы описания записи Паскаля

После того, как определен тип записи Паскаля, можно определять переменную этого типа. Переменная определяется путем задания ее идентификатора и указания типа.

Теперь нам нужно узнать, как правильно получать доступ к элементам записи Паскаля. Элементы записи называются полями, а обращение к ним производится через использование их имен – идентификаторов полей. Практически, поля записи обрабатываются точно так же, как и любые другие переменные. Но в отличие от обычной переменной имена полей должны предваряться ссылкой на идентификатор записи Паскаля и отделяться от него точкой. Такая запись называется уточняющий идентификатор:

Например, чтобы обратиться к полю curs переменной student , необходимо указать следующее составное имя:

Для того чтобы обратиться к полю god в записи student 1, необходимо записать уточняющий идентификатор, состоящий из трех имен:

Использование полей записи Паскаля в выражениях и условиях идентично использованию обычных переменных.

Операции над записями Паскаля (это важно!)

Единственная операция, которую можно произвести над однотипными записями Паскаля – это присваивание.

Все другие операции производятся над отдельными полями записи.

Пример решения задачи с использованием записей Паскаля

Рассмотрим для начала простейший пример заполнения записи Паскаля и вывода ее на экран.

Пусть нам необходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), а затем вывести эти сведения на экран.

Пример программы c записью Паскаля

А теперь слегка усложним задачу. Пусть нам необходимо иметь сведения о многих студентах, например, нашего факультета. Следовательно, необходимо организовать массив записей Паскаля. А затем из общего списка вывести фамилии студентов 2-го курса.

Пример программы c записью Паскаля

Оператор присоединения или как избавиться от префикса

Префикс – обязательная предшествующая часть составного идентификатора для имен полей в структуре типа запись Паскаля. Очень часто у программиста возникает желание не указывать префикс в имени полей, например, когда идет постоянное использование одних и тех же записей. В языке Паскаль предусмотрена такая возможность, реализуемая при помощи оператора присоединения, который в общем виде выглядит так:

with <имя_записи> do <действие с полем записи>;

Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end ).

Например, фрагмент из предыдущей программы с использованием оператора присоединения будет выглядеть так:

Записи в Паскале – структурированный комбинированный тип данных. Запись состоит из определенного числа компонент, называемых полями, которые могут быть разного типа.

Описание записи в Паскале

Общий вид описания типа record в Паскаль:

var <имя_записи> = record <имя_поля1>:<тип_поля1>; <имя_поля2>:<тип_поля2>; . end;

Но лучше создавать пользовательский тип записи и использовать переменную данного типа:

type <имя_записи> = record <имя_поля1>:<тип_поля1>; <имя_поля2>:<тип_поля2>; . end; var <имя_переменной>: <имя_записи>;

Рассмотрим примеры объявления и создания записи в Паскале.

type mydate = record month: 1..12; day: 1..31; year: integer end; var d: mydate;

Обращение к полям записи

type mydate = record month: 1..12; day: 1..31; year: integer end; var d: mydate; begin d.day:=1; d.month:=12; readln(d.year); writeln(d.day,'/',d.month,'/',d.year); end.

Записи в виде двумерной таблицы

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

Рассмотрим пример использования записи-таблицы:

1 2 3
Day 2 14 14
Month 1 2 12
Year 1985 1987 1989

Задать данные таблицы в виде записи. Объявить массив дней рождения и вывести дату первого дня рождения.

type zap1= record day:1..31; month: 1..12; year: 1900..2100; end; var birthdays:array[1..100] of zap1; begin birthdays[1].day:=2; birthdays[2].day:=14; birthdays[3].day:=14; birthdays[1].month:=1; birthdays[2].month:=2; birthdays[3].month:=12; birthdays[1].year:=1985; birthdays[2].year:=1987; birthdays[3].year:=1989; writeln(birthdays[1].day); end.

Использование конструкции with при работе с записями

При работе с записями есть возможность избавиться от постоянного префикса в виде обращения к названию переменной. Сравним два примера:

type zap1= record day:1..31; month: 1..12; year: 1900..2100; end; var my_birthday: zap1; begin my_birthday.day:=17; my_birthday.month:=4; my_birthday.year:=1993; . end.

type zap1= record day:1..31; month: 1..12; year: 1900..2100; end; var my_birthday: zap1; begin with my_birthday do begin day:= 17; month:= 3; year:= 2004; end; . end.

Во втором примере значительно проще обращаться к полям записи, избавившись от префикса, благодаря with

Внимание: Ключевое слово with при работе с массивами:

with <название массива>[1] do begin <поле1>:=. ; <поле2>:=. ; . end;

Записи при работе с файлами

type t_subscriber = record surname: string[20]; tel: LongInt; end; var subscriber: t_subscriber; f: file of t_subscriber; i: Integer; begin Assign(f,'notebook.dat'); Rewrite(f); for i:=1 to 5 do begin with subscriber do begin Write('Surname: '); ReadLn(surname); Write('Phone: '); ReadLn(tel); end; Write(f, subscriber); end; Close(f); end.

Внимание: При записи в файл и считывании из него не нужно обращаться к конкретным полям созданной записи. При считывании нельзя использовать оператор ReadLn , необходимо использовать Read . Например, при работе с массивом:

// Запись в файл: write(f, toys[1]); // Считывание из файла: read(f,toys_1[1]);

Рассмотрим пример последовательного доступа к типизированному файлу с использованием записей:

type t_subscriber = record surname: string[20]; tel: integer; end; var subscriber: t_subscriber; f: file of t_subscriber; s: string; begin Assign(f,'z:\pascal.dat'); rewrite(f); subscriber.surname:='ivanov'; subscriber.tel:=36233357; write(f,subscriber); subscriber.surname:='petrov'; subscriber.tel:=236244475; write(f,subscriber); close(f); Reset(f); while not Eof(f) do begin Read(f, subscriber); with subscriber do begin Str(tel,s); if Copy(s,1,3) = '362' then tel := tel+2000000; end; Seek(f,FilePos(f)-1); // возврат указателя назад Write(f,subscriber); Writeln(subscriber.surname, ' ',subscriber.tel); end; Close(f); end.

Множества в Паскале

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

Размер множества в Turbo Pascal всегда ограничен некоторым предельно допустимым количеством элементов. Во множествах допускаются только такие элементы, порядковые значения которых не выходят за границы 0..255. В Turbo Pascal в целочисленных множествах могут присутствовать только числа от 0 до 255.
Отрицательные элементы множеств в Turbo Pascal не допускаются. Поэтому базовыми типами не могут быть типы shortint, integer, longint.

Таким образом, если необходимо множество целочисленных объектов, то базовый тип для Turbo Pascal должен быть объявлен как диапазон типа byte . Для множеств, содержащих символы, базовым типом должен быть тип char .

type week_days = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); var work_days: set of week_days; begin work_days:=[Mon, Wed, Thu]; end.

Из примера видно, что множества (тип set ) задаются путем перечисления значений, разделенных запятыми и заключенных в квадратные скобки.

Синтаксис:
name_set:=[expr1, expr2, … exprn];

type letters = set of char; var ch1,ch2:letters; .

Переменные ch1 и ch2 из примера также не могут быть выведены на экран и их значения не могут быть запрошены при помощи оператора read .

Возникает логичный вопрос: как же тогда работать с множествами в Паскале?

Чтобы ответить на данный вопрос, сначала рассмотрим операции, выполняемые над множествами.

Действия над множествами

Объединение двух множеств A и B ( A + B ) – это новое множество, состоящее из элементов, принадлежащих множеству A или B либо тому и другому одновременно
множества в Паскале

Пример:

Пересечение двух множеств A и B ( A * B ) – это множество, состоящее из элементов, одновременно принадлежащих множествам A и B .
множества в Паскале: пересечение

Пример:

var ch1, ch2, ch3: set of char; begin ch1:=['a', 'b', 'd']; ch2:=['m', 'd', 'e']; ch3:=ch1 * ch2; <Результат: ch3 = ['d'] >end.

Разность двух множеств A и B ( A – B ) – это новое множество, состоящее из элементов множества A , не вошедших в множество B .
множества в Паскале: разность

Пример:

var ch1, ch2, ch3: set of char; begin ch1 := ['a', 'e', 't']; ch2 := ch1 – ['e']; < ['a', 't'] >ch3 := ['m', 'n', 't'] – ch2; < ['m', 'n'] >end.

Множества и операция IN в Паскале

Операция in необходима для поиска определенного элемента в величине типа set , т.е. в множестве.

Так, если x есть элемент множества a , то ( x in a ) дает true .

type week_days=(Mon, Tue, Wed, Thu, Fri); var work_days: set of week_days; begin work_days:=[Mon, Wed]; if Mon in work_days then writeln ('понедельник - рабочий день') else writeln ('понедельник - не рабочий день') end.

var work_days,days_off: set of byte; begin work_days:=[1, 2]; days_off:=[6, 7]; if 1 in work_days then writeln ('понедельник - рабочий день') else writeln ('понедельник - не рабочий день'); if 6 in days_off then writeln ('суббота - выходной день') else writeln ('суббота - не выходной день'); end.

var voron, vorona, voroni: set of byte; number:integer; begin voron:=[5,6,7,8,9,10]; vorona:=[1]; voroni:=[2,3,4]; writeln ('введите количество ворон'); readln(number); if number in voron then writeln ('на ветке ', number,' ворон'); if number in vorona then writeln ('на ветке ', number,' ворона'); if number in voroni then writeln ('на ветке ', number,' вороны') end.

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

var m : set of char; s : string; i : byte; begin write('строка: '); readln(s); m :=[]; i := 1; while i <= length(s) do if s[i] in m then delete(s, i, 1) else begin m:=m+[s[i]]; i := i + 1 end; writeln(s) end.

type t_chs = set of Char; const lett: t_chs = ['a'..'z','A'..'Z','_']; num: t_chs = ['0'..'9']; var str: string; i: byte; flag: boolean;


В Паскале эта информация может храниться в одной переменной типа record (запись).

Задать тип можно следующим образом:

type < имя _ типа >=record
<имя_поля1>: тип;
<имя_поля2>: тип;
………………….
<имя_поля K >: тип
end;

где record – служебное слово, а <имя_типа> и <имя_поля> - правильные идентификаторы языка Паскаль.

Описание анкеты студента в Паскале будет выглядеть так:
Пример фрагмента программы описания записи Паскаля

Type anketa=record
fio: string[45];
pol: char;
dat_r: string[8];
adres: string[50];
curs: 1..5;
grupp: string[3];
end;

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

Поля
После того, как определен тип записи Паскаля, можно определять переменную этого типа. Переменная определяется путем задания ее идентификатора и указания типа.

var
student: anketa;
student1: anketa;

Теперь нам нужно узнать, как правильно получать доступ к элементам записи Паскаля.
Элементы записи называются полями , а обращение к ним производится через использование их имен – идентификаторов полей. Практически, поля записи обрабатываются точно так же, как и любые другие переменные. Но в отличие от обычной переменной имена полей должны предваряться ссылкой на идентификатор записи Паскаля и отделяться от него точкой.

Такая запись называется уточняющий идентификатор:

Пример

Чтобы обратиться к полю curs переменной student, необходимо указать следующее составное имя:
student.curs :=3;
Для того чтобы обратиться к полю pol в записи student1, , необходимо указать следующее составное имя:
student.pol :='ж';

Использование полей записи Паскаля в выражениях и условиях идентично использованию обычных переменных.

Пример решения задачи с использованием записи

Пример 1
Рассмотрим для начала простейший пример заполнения записи Паскаля и вывода ее на экран.
Н еобходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), а затем вывести эти сведения на экран.

Пример 2

Необходимо иметь сведения о многих студентах одного факультета. Следовательно, необходимо организовать массив записей Паскаля. А затем из общего списка вывести фамилии студентов 2-го курса.

program primer 2 ;
type anketa=record
fio: string[45];
dat_r: string[8];
adres: string[50];
curs: 1..5;
grupp: string[3]
end;
var student: array [1..100] of anketa; // переменная student - массив записей
I: integer;
begin
<последовательно вводим каждую запись>
for I:=1 to 100 do
begin
writeln (‘введите сведения о’, I , ‘-м студенте’);
writeln (‘введите фамилию, имя и отчество’);
readln (student[I].fio);
writeln (‘введите дату рождения’);
readln (student[I].dat_r);
writeln (‘введите адрес’);
readln(student[I].adres);
writeln (‘введите курс’);
readln(student[I].curs);
writeln (‘введите группу’);
readln (student[I].grupp);
end;
writeln (‘ввод закончен’);
writeln ;
<просматриваем массив записей и выбираем только студентов 2-го курса >
for I:=1 to 100 do
if student[I].curs=2 then
writeln(‘ фамилия студента : ’, student[I].fio);
end.

Оператор присоединения

Чтобы сделать обращение к полям записи более коротким используется оператор присоединения with , который в общем виде выглядит так:

with <имя_записи> do <действие с полем записи>;

Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end ).

Например, фрагмент из предыдущей программы с использованием оператора присоединения будет выглядеть так:

Пример фрагмента программы c записью и префиксом Паскаля

for i :=1 to 100 do
with student [ i ] do
begin
writeln (‘введите сведения о’, I , ‘-м студенте’);
writeln (‘введите фамилию, имя и отчество’);
readln ( fio );
writeln (‘введите дату рождения’);
readln ( dat _ r );
writeln (‘введите адрес’);
readln ( adres );
writeln (‘введите курс’);
readln ( curs );
writeln (‘введите группу’);
readln ( grupp );
end ;

Пример 3

Н еобходимо иметь сведения о многих студентах одного факультета. Следовательно, необходимо организовать массив записей Паскаля. А затем из общего списка вывести фамилии студентов 2-го курса. Использовать оператор присоединения.

program primer 2 ;
type anketa=record
fio: string[45];
dat_r: string[8];
adres: string[50];
curs: 1..5;
grupp: string[3]
end;
var student: array [1..100] of anketa; // переменная student - массив записей
I: integer;
begin
<последовательно вводим каждую запись>
for i :=1 to 100 do
with student [ i ] do
begin
writeln (‘введите сведения о’, I , ‘-м студенте’);
writeln (‘введите фамилию, имя и отчество’);
readln ( fio );
writeln (‘введите дату рождения’);
readln ( dat _ r );
writeln (‘введите адрес’);
readln ( adres );
writeln (‘введите курс’);
readln ( curs );
writeln (‘введите группу’);
readln ( grupp );
end ;
writeln (‘ввод закончен’);

<просматриваем массив записей и выбираем только студентов 2-го курса >
for I:=1 to 100 do
with student [ i ] do
begin
if curs=2 then
writeln( ‘ фамилия студента : ’, fio);
end.

Задания
Необходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа).
Вывести на экран:

Как мы уже выяснили, массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, указывая положение точки в пространстве, мы можем воспользоваться одним и тем же типом для указания ее координат, но, описывая человека, мы должны указать его имя, рост, цвет глаз и волос, то есть в одном описании объединим разнородную информацию. Точно так же, описывая автомобиль, мы укажем не только его марку, но и год выпуска, модификацию, да и цвет кузова может нас заинтересовать. Составляя автоматизированный каталог книгохранилища, мы для каждой книги должны указать ее название, имя автора, область знания, количество страниц, год издания, а также, возможно, признак нахождения на руках или в хранилище.

Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называют записью (record). В языке Паскаль записьопределяется путем указания служебного слова record и перечисления входящих в запись элементов с указанием типов этих элементов.

Запись Паскаля – структурированный комбинированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа.

Например, анкетные данные о студенте вуза могут быть представлены в виде информационной структуры

Такая структура называется двухуровневым деревом. В Паскале эта информация может храниться в одной переменной типа record (запись). Задать тип можно следующим образом:

где record – служебное слово, а <имя_типа> и <имя_поля> - правильные идентификаторы языка Паскаль.

Описание анкеты студента в Паскале будет выглядеть так:

Пример фрагмента программы описания записи Паскаля

Такая запись Паскаля, так же как и соответствующее ей дерево, называется двухуровневой.

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

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

Пример фрагмента программы описания записи Паскаля

После того, как определен тип записи Паскаля, можно определять переменную этого типа. Переменная определяется путем задания ее идентификатора и указания типа.

Теперь нам нужно узнать, как правильно получать доступ к элементам записи Паскаля. Элементы записи называются полями, а обращение к ним производится через использование их имен – идентификаторов полей. Практически, поля записи обрабатываются точно так же, как и любые другие переменные. Но в отличие от обычной переменной имена полей должны предваряться ссылкой на идентификатор записи Паскаля и отделяться от него точкой. Такая запись называется уточняющий идентификатор:

Например, чтобы обратиться к полю curs переменной student , необходимо указать следующее составное имя:

Для того чтобы обратиться к полю god в записи student 1, необходимо записать уточняющий идентификатор, состоящий из трех имен:

Использование полей записи Паскаля в выражениях и условиях идентично использованию обычных переменных.

Операции над записями Паскаля (это важно!)

Единственная операция, которую можно произвести над однотипными записями Паскаля – это присваивание.

Все другие операции производятся над отдельными полями записи.

Пример решения задачи с использованием записей Паскаля

Рассмотрим для начала простейший пример заполнения записи Паскаля и вывода ее на экран.

Пусть нам необходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), а затем вывести эти сведения на экран.

Пример программы c записью Паскаля

А теперь слегка усложним задачу. Пусть нам необходимо иметь сведения о многих студентах, например, нашего факультета. Следовательно, необходимо организовать массив записей Паскаля. А затем из общего списка вывести фамилии студентов 2-го курса.

Пример программы c записью Паскаля

Оператор присоединения или как избавиться от префикса

Префикс – обязательная предшествующая часть составного идентификатора для имен полей в структуре типа запись Паскаля. Очень часто у программиста возникает желание не указывать префикс в имени полей, например, когда идет постоянное использование одних и тех же записей. В языке Паскаль предусмотрена такая возможность, реализуемая при помощи оператора присоединения, который в общем виде выглядит так:

with <имя_записи> do <действие с полем записи>;

Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end ).

Например, фрагмент из предыдущей программы с использованием оператора присоединения будет выглядеть так:

Читайте также: