Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Записи

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

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

Например:

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.





Дата публикования: 2014-11-02; Прочитано: 412 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...