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

 

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

Записи

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

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

 

Например:

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;

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

Например, чтобы сохранить информацию о студентах группы в 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 - средний бал.

 

Задача.

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

 

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

 

Наименование переменной Обозначения в программе
Имя массива st
Количество студентов n
Индекс массива i
Средний возраст p
Количество мужчин k
Текущий год t

 

program rec;

uses crt;

type

student = record; {запись}

surname : string[20];

year : integer;

pol : char;

end;

var

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

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.

 








Дата добавления: 2015-05-21; просмотров: 547;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.