Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика курс лекций.pdf
Скачиваний:
149
Добавлен:
26.07.2016
Размер:
837.84 Кб
Скачать

readln;

end.

15. Структурированные типы данных

При решении задач обработки большого количества данных используют массивы. Но при работе с массивами основное ограничение заключается в том, что все элементы массива должны быть одного типа. Для работы с комбинированными типами данных применяют записи.

15.1. Записи

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

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

Например: type

student = record; {запись} surname : string[20];

year : integer; bal : real;

end; {завершает список полей} var

st:student;

Сформирован пользовательский тип данных – student, он базируется на стандартных типах

(string, integer,real).

Переменная st - имеет тип student (запись), состоит из 3-х полей: surname – фамилия студента;

year – год рождения; bal – средний бал.

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

st.surname:='Иванов'; st.year:=1905; st.bal:=4.5;

Для уменьшения записи обращения к отдельным полям используют оператор with … do Например:

with st do begin

surname:='Иванов'; year:= 1905; bal:=4.5;

end;

77

Для обработки большого объема информации комбинированного типа целесообразно строить массивы записей, где каждый элемент массива – запись, состоящая из нескольких полей разного типа.

Например, чтобы сохранить информацию о студентах группы в 25 человек, можно создать следующий массив записей:

type

student = record; {запись} surname : string[20];

year : integer; bal : real; end;

var

st:array[ 1..25 ] of student;

st – массив записей. Каждый элемент массива(St[i])содержит информацию об одном студенте: St[i].surname – фамилия;

St[i].year - год рождения; St[i].bal - средний бал.

Задача.

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

Таблица идентификаторов

Наименование переменной

Обозначения в программе

1

Имя массива

st

 

 

 

2

Количество студентов

n

 

 

 

3

Индекс массива

i

4

Средний возраст

p

5

Количество мужчин

k

6

Текущий год

t

program rec; uses crt; type

student = record; {запись} surname : string[20];

year : integer; pol : char; end;

var

st:array[ 1..30 ] of student;

78

i,n,t:integer; p:real;

begin clrscr;

writeln(‘Введите текущий год’); readln(t)

writeln(‘Введите количество студентов’); readln(n)

for i:=1 to n do with st[i] do begin

writeln(‘Сведения о ’,i,‘ студенте’); writeln(‘Введите фамилию’); readln(surname); writeln(‘Введите год рождения’); readln(year); writeln(‘Введите средний бал’); readln(bal); end;

p:=0;

for i:=1 to n do begin

if st[i].pol=’m’ then begin p:=p+(t-st[i].year); k:=k+1;

end;

writeln(‘Средний возраст мужчин =’,(p/k):8:3 ); readln;

end.

79

Соседние файлы в предмете Информатика