Слайд 2 Запис - це структурований тип даних, що складається з фіксованого числа компонентів,
![Запис - це структурований тип даних, що складається з фіксованого числа компонентів,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-1.jpg)
які називають полями. В одному полі дані мають той самий тип, а в різних полях можуть мати різні типи.
Слайд 3 Загальний вигляд опису типу record:
type <назва типу запису> = record
<назва поля 1>
![Загальний вигляд опису типу record: type = record : ; : ; ...................... : ; end;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-2.jpg)
: <тип поля 1>;
<назва поля 2> : <тип поля 2>;
......................
<назва поля N> : <тип поля N>;
end;
Слайд 4 Доступ до конкретного поля запису дає складене ім’я вигляду
<назва запису> . <назва
![Доступ до конкретного поля запису дає складене ім’я вигляду .](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-3.jpg)
поля>
Слайд 5 Приклад 1. Дати яких-небудь подій можна описати в такий спосіб:
type date=record
month:
![Приклад 1. Дати яких-небудь подій можна описати в такий спосіб: type date=record](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-4.jpg)
1..12;
day: 1..31;
year: integer;
end;
var D: date;
Слайд 6Поле day змінної D записується як D.day.
Наприклад, щоб заслати в D дату
![Поле day змінної D записується як D.day. Наприклад, щоб заслати в D](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-5.jpg)
12.01.1985, треба виконати наступні оператори:
D.day:=12;
D.month:=1;
D.year:=1985;
Слайд 7 Приклад 2. Тип який описує оцінки з трьох предметів (геодезії, математики, інформатики
![Приклад 2. Тип який описує оцінки з трьох предметів (геодезії, математики, інформатики](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-6.jpg)
і рейтинг студента, як середнє з цих трьох оцінок).
type reiting=record
geod,math,inform:integer;
reit:real;
end;
var C:reiting;
Слайд 8 Запис може бути вкладеним в інший запис.
Приклад 3. Запис про анкетні дані
![Запис може бути вкладеним в інший запис. Приклад 3. Запис про анкетні](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-7.jpg)
студентів: прізвище, ім’я, дату народження та середній бал, можна описати наступним чином:
Слайд 9 grupa=record
name, surname:string[20];
birthday:record
year:integer;
month:1..12;
day:1..31;
end;
sbal:real;
end;
![grupa=record name, surname:string[20]; birthday:record year:integer; month:1..12; day:1..31; end; sbal:real; end;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-8.jpg)
Слайд 10 Запис може бути компонентом інших структур.
Приклад 4. Дано оцінки студентів по геодезії,
![Запис може бути компонентом інших структур. Приклад 4. Дано оцінки студентів по](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-9.jpg)
математиці й інформатиці в групі (наприклад із трьох чоловік)
X[1].geod=4, X[1].math=3, X[1].inform=5,
X[2].geod=3, X[2].math=4, X[2].inform=3,
X[3].geod=5, X[3].math=4, X[3].inform=4.
Обчислити рейтинг кожного студента, як середній бал з цих трьох оцінок.
Слайд 11 Відповідний фрагмент програми виглядає так:
Var X: array [1..3] of reiting; {див.
![Відповідний фрагмент програми виглядає так: Var X: array [1..3] of reiting; {див.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-10.jpg)
приклад 2}
i:word;
begin
X[1].geod=4; X[1].math=3; X[1].inform=5;
X[2].geod=3; X[2].math=4; X[2].inform=3;
X[3].geod=5; X[3].math=4; X[3].inform=4;
For i:=1 to 3 do
X[i].reit:=(X[i].geod+X[i].math+X[i].inform)/3;
……
Слайд 13 Оператор With використовується для зручності роботи зі змінними типу record (запис). Він
![Оператор With використовується для зручності роботи зі змінними типу record (запис). Він](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-12.jpg)
дає змогу звертатися до поля запису вказуючи лише ім’я поля.
Загальний вигляд оператора with:
with <ім'я змінної типу record> do <оператор>;
Слайд 14 В операторі що слідує після do при посиланнях на компоненти запису ім'я
![В операторі що слідує після do при посиланнях на компоненти запису ім'я](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-13.jpg)
запису можна опускати.
Зауваження. В операторі with після do виконується лише один оператор. Якщо потрібно щоб виконувались декілька операторів, то їх необхідно взяти в операторні дужки (begin … end).
Слайд 15 Приклад 5. Для занесення оцінок першого студента в попередньому прикладі достатньо виконати
![Приклад 5. Для занесення оцінок першого студента в попередньому прикладі достатньо виконати](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-14.jpg)
оператори:
with X[1] do
begin
geod:=4;
math:=3;
inform:=5;
end;
Слайд 16 Тепер використовуючи оператор приєднання with і оператор циклу з параметром програму для
![Тепер використовуючи оператор приєднання with і оператор циклу з параметром програму для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-15.jpg)
вище наведеного прикладу 4 можна записати в такому вигляді:
Слайд 17 Program Zapysy;
Const n=3;
type reiting=record
geod,math,inform:integer;
reit:real;
end;
Var X: array [1..n] of reiting;
![Program Zapysy; Const n=3; type reiting=record geod,math,inform:integer; reit:real; end; Var X: array [1..n] of reiting; begin](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-16.jpg)
begin
Слайд 18for i:=1 to n do
with X[i] do
begin
writeln(‘Enter ocinku z geodezii’,i,
![for i:=1 to n do with X[i] do begin writeln(‘Enter ocinku z](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-17.jpg)
’studenta’);
readln(geod);
writeln(‘Enter ocinku z matematuki’,i, ’studenta’);
readln(math);
writeln(‘Enter ocinku z informatuki ’,i, ’studenta’);
readln(inform);
end;
Слайд 19For i:=1 to n do
With X[i] do
begin
reit:=(geod+math+inform)/3;
writeln(‘Reiting’,i,’studenta=’,X[i]:5:2);
![For i:=1 to n do With X[i] do begin reit:=(geod+math+inform)/3; writeln(‘Reiting’,i,’studenta=’,X[i]:5:2); end;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-18.jpg)
end;
end.
Змінюючи константу n можна обчислювати рейтинги для різної кількості студентів.
Слайд 21Program Complexni_Chysla;
Type complex=record
re,im:real;
end;
Var z1,z2,z3,r1,r2:complex;
procedure spr(c:complex; Var r:complex);
begin
r.re:=c.re;
r.im:=-c.im;
![Program Complexni_Chysla; Type complex=record re,im:real; end; Var z1,z2,z3,r1,r2:complex; procedure spr(c:complex; Var r:complex);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-20.jpg)
end;
procedure suma(c1,c2:complex; Var r:complex);
begin
r.re:=c1.re+c2.re;
r.im:=c1.im+c2.im;
end;
Слайд 22procedure dil(c1,c2:complex; Var r:complex);
Var d:real;
begin
d:=sqr(c2.re)+sqr(c2.im);
if d<>0 then
begin
r.re:=(c1.re*c2.re+c1.im*c2.im)/d;
r.im:=(c1.im*c2.re-c1.re*c2.im)/d;
![procedure dil(c1,c2:complex; Var r:complex); Var d:real; begin d:=sqr(c2.re)+sqr(c2.im); if d 0 then](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373559/slide-21.jpg)
end;
end;