Читайте также: |
|
Запись – это структура данных, состоящая из фиксированного числа компонент, называемых полями. Каждое поле имеет свой идентификатор и тип. К компонентам записи возможен прямой доступ и они могут выборочно обновляться. Идентификатор в самой записи должен быть уникальным. Для обращения к отдельным полям записи указываются составные имена: имя записи, после которого ставится точка и записывается идентификатор поля. Запись можно передавать в качестве параметра процедуры или функции, но значением функции запись быть не может.
В общем виде описание типа для записи можно представить:
TYPE < идентификатор типа >= RECORD
< идентификатор 11 >[,< идентификатор 12 >,…]: < тип 1 >;
< идентификатор 21 >[,< идентификатор 22 >,…]: < тип 2 >;
...
END;
Например,
TYPE TA= RECORD
P1: REAL;
P2: CHAR;
P3: BYTE
END;
VAR A: ARRAY[1..10] OF TA;
Здесь описан одномерный массив, каждый элемент которого представляет собой запись, имеющую структуру типа TA.
Запись может объявляться и непосредственно в разделе описания переменных.
VAR C: RECORD
P1: REAL;
P2: CHAR;
P3: BYTE
END;
Рассмотрим пример. Дан массив записей со следующей структурой:
- шифр группы;
- номер зачетной книжки;
- код дисциплины;
- оценка.
Требуется определить средний балл студентов группы AI007. При вводе массива последняя запись имеет шифр группы «99999».
Program srball;
type zap=record
shg:string[5];
nzk:integer;
kd:1..100;
oc:2..5
end;
var mas:array[1..100] of zap;
k,n,i:byte;
sum:real;
begin
i:=0;
repeat
inc(i);
readln (mas[i].shg, mas[i].nzk, mas[i].kd, mas[i].oc)
until mas[i].shg='99999';
n:=i; sum:=0; k:=0;
for i:=1 to n do
if mas[i].shg='AI007' then
begin
sum:=sum+mas[i].oc;
inc(k)
end;
if k<>0 then sum:=sum/k;
writeln ('Средний балл в группе AI007=',sum)
End.
Дата добавления: 2015-07-19; просмотров: 54 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Требования к отчету | | | Оператор присоединения (WITH) |