Пример программы использования массива записей

Задача:

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

  • список сотрудников отдела Х с указанием оклада и трудового стажа;
  • подсчитать среднюю заработную плату сотрудников отдела Х.

Название отдела Х вводится по запросу с клавиатуры.

  1. Таблица идентификаторов
Наименование переменной Обозначения в программе Тип переменной
  Имя массива f record (запись)
  Количество сотрудников n integer
  Поле фамилия surname string
  Поле отдел otdel string
  Поле оклад oklad real
  Поле стаж Stag integer
  Средняя зарплата Sred real
  Отдел поиска Х X string
  Количество сотрудников в отделе Х K integer
  Индексы массива i integer
  1. Листинг программы

program rec_1;

uses crt;

type

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

surname: string[20];

otdel: string[20];

oklad: real;

Stag: integer;

end;

var

f:array[ 1..30 ] of firma; {массив записей}

X:string[20];

i,n,k:integer;

sred:real;

begin

clrscr;

writeln(‘Введите n’); readln(n);

writeln(‘Введите информацию о сотрудниках’);

for i:=1 to n do

with f[i] do

begin

writeln(‘Введите фамилию ’); readln(surname);

writeln(‘Введите отдел ’); readln(otdel);

writeln(‘Введите оклад ’); readln(oklad);

writeln(‘Введите стаж ’); readln(Stag);

end;

writeln(‘Введите название отдела’); readln(X);

sred:=0; k:=0;

writeln(‘Список сотрудников отдела ’,X);

for i:=1 to n do

if f[i].otdel=X then

begin

writeln(f[i].surname,’ ‘,f[i].oklad:8:3);

sred:=sred+f[i].oklad;

k:=k+1;

end;

writeln(‘Средняя зарплата отдела=’,(sred/k):8:3);

readln;

end.

Вопросы для самоконтроля

  1. В чем состоит основное преимущество записи?
  2. Почему записи называют комбинированным типом записи?
  3. Чем записи отличаются от массивов?
  4. Что называется полем записи?
  5. Какие требования предъявляются к идентификаторам поля записи?
  6. Как определить объем памяти, требуемый для размещения записи?
  7. С какой целью при обращении к полю записи используется оператор with … do?

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: