русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Доступ до компонентів та операції над записами


Дата додавання: 2013-12-23; переглядів: 1459.


Var ім’я_змінної : record

Записи

 

Реальний світ насичений неоднорідними структурами даних. Прикладами таких структур можуть стати: календарна дата, що складається з номера дня, номера року та назви місяця, особова картка працівника (прізвище, адреса, дата народження, прибуток тощо), відомості про товар (назва товару, ціна, виробник, номер сертифікату якості).

Для представлення такої інформації використовується структура яка носить назву запис.

Характерні особливості запису:

1. компоненти, з яких вона складається, можуть бути різного типу; //головна відмінність від масиву

2. кожен компонент має ім’я.

Запис – це структурований тип даних, що являє об’єднання фіксованої кількості змінних одного або декількох типів.

Змінні, що входять до складу запису, називаються – полями. Ім’я поля має бути унікальними в межах одного запису.

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

type ім'я_типу = record

им’я_поля1:тип1;

им’я_поля2:тип2;

......................................................

им’я_поляN:типN;

end;

varім’я_змінної: ім'я_типу;

 

Розділ змінних

им’я_поля1:тип1;

им’я_поля2:тип2;

......................................................

им’я_поляN:типN;

end;

 

Приклад

type

date=record

day : 1..31;

month : string;

year : 1..2010;

end;

person=record

First_name : string;

last-name : string;

address : string;

birthday : date;

profit:real;

end;

produce=record

name : string;

price : real;

producer : string;

certification : integer;

end;

var d : date; man : person; item : produce;

 

Поле запису може бути будь-якого типу крім файлового.

Записи можна використовувати для створення типізованих констант.

 

Звернення до компонентів записів здійснюється через складене ім’я, що має такий синтаксис

ім’я_змінної . им’я_поля

В розділі згадувалось, що ім’я поля має бути унікальними в межах одного запису. Але слід зауважити, що імена полів різних записів можуть збігатися тому що доступ до компонентів здійснюється через складене ім’я. Якщо екземпляр деякого запису є полем іншого запису, то складені імена полів такого екземпляру міститимуть звернення до декілька полів.

 

type

date=record

day : 1..31;

month : string;

year : 1..2010;

end;

person=record

First_name : string;

last-name : string;

address : string;

birthday : date;

profit:real;

end;

var man : person; d:date;

begin

d.day:=22;

man. First_name:=’Ivanov’;

man. birthday. day:=12;

end.

 

Складність доступу до компонентів записів може бути зменшена, якщо використати конструкцію (оператор приєднання)

with ім’я_змінної do оператор;

 

type

date=record

day : 1..31;

month : string;

year : 1..2010;

end;

person=record

First_name : string;

last_name : string;

address : string;

birthday : date;

profit:real;

end;

var man : person; d:date;

begin

with d do

begin

day:=22;

end;

 

with man, birthday do

begin

man. First_name:='Ivanov';

man. birthday. day:=12;

end;

end.

 

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

1. Вводит данные о студентах, содержащие фамилию, группу, средний бал за семестр.

2. выводит на экран дисплея фамилии студентов: которые начинаются на букву 'S' и у которых самый высокий средний бал.

Хранится эта информация будет в массиве, каждый элемент которого – данные о студенте.

 

1 program N2;

2 {$APPTYPE CONSOLE}

3 uses SysUtils;

4 const n=3;

5 type student= record

6 name:string[20];

7 grup:string[5];

8 bal:real;

9 end;

10 var st:array [1..n]of student;

11 i,k:byte; max:real;

12 begin

13 writeln('Vvedite dannie o

studente');

14 For i:=1 to n do

15 with st[i] do

16 begin

17 writeln('Student N',i);

18 write('Vvedite name - ');

19 readln(name);

20 write('Vvedite grup - ');

21 readln(grup);

22 write('Vvedite bal - ');

23 readln(bal);

24 end;

25 writeln('Name studentov

nach c S:');

26 k:=0;

27 For i:=1 to n do

28 with st[i] do

29 if name[1]='S' then

30 begin

31 writeln(name);

32 k:=k+1;

33 end;

34 if k=0 then writeln('net');

35 writeln('Maximal sred bal: ');

36 max:=st[1].bal;

37 k:=1;

38 For i:=2 to n do

39 with st[i] do

40 if bal>max then

41 begin

42 max:=bal ;

43 k:=i

44 end;

45 writeln (st[k].name);

46 readln;readln

47 end.

 

 


<== попередня лекція | наступна лекція ==>
Лекция 5 | Понятие и сущность охраны физических лиц


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн