↑ Вгору

Реферат на тему

Використання типу - запис


читати

Переглянути реферат

зберегти

Скачати реферат

друкувати

Друкувати реферат

Реферат на тему:

Використання типу - Запис

Записи дозволяють об'єднати під одним іменем дані різних типів. Це
зручно для рішення різноманітних задач. Спочатку треба описати тип-запис
за допомогою слова Record:

Type Student=Record

FIO:String[30];

Rogd:Integer;

Zrist:Real;

Ocinku:Array[1..5] of Byte;

End;

Запис складається з окремих полів, кожне поле має свій тип. Кількість
полів необмежена, порядок їх проходження будь-який. Поле, в свою чергу,
може бути записом, для цього попередньо, описують відповідний тип,
наприклад:

Type Data=Record

Rik : Integer;

Mis : 1..12;

Chislo : 1..31;

End;

Тепер на тип Data можна посилатись в інших записах, наприклад:

Rogd : Data;

Змінні типу „запис” описуються звичайним способом, наприклад:

Var StudEK, StudMO : Student;

Для таких змінних компілятор розподілить пам’ять відповідно з
проходженням полів і їх типом. Щоб звернутися до якого-небудь поля,
вживають складені імена, перша частина яких — ім’я змінної, а друга —
ім'я поля. Наприклад:

StudEK.Fio := 'Петренко A.M.';

Якщо поле є в свою чергу запис, то складене ім'я подовжується,
наприклад:

StudEK.Rogd.Rik := 1975;

Втому випадку, коли поле — масив, є можливість звернутися до його
окремого елементу: StudEK.Ocinku[k].

Складені змінні вживають, як звичайні змінні в різних конструкціях
програми.

В одній програмі може бути декілька різних записів (без обмежень).
Записи можна об'єднувати в масив, наприклад:

Var Kurs1 : Array[l..25] of Student;

I в цьому випадку можна звертатися до окремого запису або до конкретного
поля якого-небудь запису, наприклад:

Kurs1[i];

Kurs1[i].FIO;

Kurs1[i].Rogd.Rik

Kurs1[i].Ocinku[k];

Щоб ввести або вивести запис, треба ввести/вивести відповідні поля,
наприклад:

Readln(StudEK.Fio);

For i:=l to 5 do Read(StudEK.Ocinku[i]);

Writeln(StudEK.Fio);

For i:=l to 5 do write(StudEK.Ocinku[i]);

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

,

F

В

ю

*

,

4

:

B

D

F

А

В

И

К

Ц

Ъ

ж

м

ъ

ь

ю

6якійсь мірі зменшити її. Для цього треба визначити область дії
конструкції, наприклад:

With StudEK do

begin

.....

End;

В визначеній області замість довгого складеного вживають більш просте
ім'я, наприклад:

Readln(Fio);

For i:=1 to 5 do Read(Ocinku[i]);

Zrist := 180;

Якщо в програмі використовується декілька записів з однаковими іменами
полів, треба бути обережним з вживанням With, щоб не сталося плутанини.

В загальному випадку виділяють два види задач: обробка одиноких записів
та обробка масивів записів.

Перший вид зустрічається, наприклад, в інформаційно-довідкових системах,
коли вся інформація зберігається в файлі і треба одержати яку-небудь
довідку, наприклад, скільки в групі студентів вчиться на 4 та 5.

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

Масив записів вживають в тих випадках (хоча це не є економне
використання пам'яті), коли для розв'язування задачі треба мати в
пам'яті всі записи, наприклад, при сортуванні записів по якій-небудь

по якій-небудь
ознаці (середній бал успішності, зріст студентів, тощо).

Приклад. Вивести список студентів, що навчаються на 4 та 5.

Програма:

Type S=Record

FIO:String;

GR:Word;

GP:Word;

O:Array[1..3] of Byte;

End;

Var a:Array[1..10] of S;

i,j,n:Byte;

B:Boolean;

Begin

Write('Kolichestvo students:');

Readln(n);

For i:=1 to n do

Begin

Writeln('Student-',i);

Write('Input FIO:');

Readln(a[i].FIO);

Write('Input god rogdenia:');

Readln(a[i].GR);

Write('Input god postuplenia:');

Readln(a[i].GP);

For j:=1 to 3 do

Begin

Write('Input ',j,' ocenku:');

ReadLn(a[i].O[j]);

End;

End;

For i:=1 to n do

Begin

B:=True;

For j:=1 to 3 do

If a[i].O[j]<4 Then B:=False;

If B=True Then Writeln(a[i].FIO:30);

End;

End.


© 2013 Alive-inter.net Про сайт Зворотній зв`язок Відмова від відповідальності