Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Модуль1.doc
Скачиваний:
130
Добавлен:
28.05.2015
Размер:
1.7 Mб
Скачать

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

Задача:

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

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

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

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

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

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

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

Тип переменной

1

Имя массива

f

record

(запись)

2

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

n

integer

3

Поле фамилия

surname

string

4

Поле отдел

otdel

string

5

Поле оклад

oklad

real

6

Поле стаж

Stag

integer

7

Средняя зарплата

Sred

real

8

Отдел поиска Х

X

string

9

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

K

integer

10

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

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?

Методические указания к выполнению индивидуального задания по Модулю 2. «Массивы записей»

Цель работы: Ознакомиться с пользовательскими типами данных, записями. Научиться организовывать массивы записей.

Задание:

  1. В приложении 11 выбрать вариант задания.

  2. Выполнить индивидуальное задание по Модулю 2 , на примере программы использования массива записей.

  3. Составить блок-схему алгоритма.

  4. Утвердить блок-схему у тьютора.

  5. Написать программу и отладить ее по заранее подготовленному тесту.

  6. Результат выполнения программы предъявить преподавателю.

  7. Оформить ИДЗ в формате А4, титульный лист по образцу Приложение 4

  8. Защитить выполненную работу у преподавателя.

Приложение 11. Таблица вариантов индивидуального задания

Вариант

Задание

1

Создать массив записей, содержащий сведения о месячной заработной плате рабочих завода.

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

-отсортировать массив записей по полю заработная плата;

-подсчитать общую сумму выплат за месяц по цеху Х. Наименование цеха Х вводится по запросу с клавиатуры.

2

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

Написать программу, выдающую следующую информацию:

-список участников, приехавших из города Х с указанием возраста;

-средний возраст участников конференции.

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

3

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

Написать программу, выдающую следующую информацию:

-список врачей по специализации Х с указанием стажа работы;

-средний стаж сотрудников клиники.

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

4

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

-список абонентов, отсортированный по полю год установки;

- по вводимой фамилии Х выдается номер телефона абонента.

Фамилия Х вводится по запросу с клавиатуры.

5

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

- стоимость самой дорогой игрушки и ее наименование;

- общую стоимость всех игрушек в магазине.

6

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

-список стран, в которые экспортируется товар Х и объем его экспорта;

-средний объем экспорта товара Х.

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

7

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

-список студентов, отсортированный по полю год рождения с указанием полученных оценок;

-количество студентов, получивших неудовлетворительные оценки хотя бы по одной дисциплине.

8

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

-список книг автора Х с указанием названия и года издания книги;

-стоимость самой дорогой книги автора Х;

Фамилия автора Х вводится по запросу с клавиатуры.

9

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

-список рейсов самолетов в город Х, с указанием времени вылета и стоимости билетов;

-номер рейса в город Х, с минимальной стоимостью билета.

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

10

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

-список товаров, отсортированный по полю стоимость товара;

- общую стоимость всех товаров в магазине.

11

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

-фамилии неуспевающих студентов группы Х, с указанием количества задолженностей;

-количество неуспевающих студентов группы Х.

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

12

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

-время отправления поездов в город Х с указанием стоимости билетов;

-номер поезда в город Х с минимальной стоимостью билета.

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

13

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

-список сотрудников мужского пола отдела Х призывного возраста (старше 18 и младше 30 лет), с указанием стажа работы;

-средний возраст сотрудников мужского пола отдела Х.

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

14

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

-по вводимой фамилии абонента Х и адресу Y выдается номер телефона.

Фамилию абонента Х и адрес Y вводится по запросу с клавиатуры.

15

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

-список товаров, стоимость которых не превышает Х рублей с указанием количества;

-общее количество товаров, стоимость которых не превышает Х.

Стоимость Х вводится по запросу с клавиатуры.

16

Создать массив записей, содержащий сведения о товарах автосалона. Каждая запись содержит поля –

модель автомобиля, цвет, номер двигателя, стоимость. Написать программу, выдающую следующую информацию:

-список автомобилей модели Х с указанием цены, цвета и номера двигателя;

-самый дорогой автомобиль модели Х.

Модель автомобиля Х вводится по запросу с клавиатуры.

17

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

наименование страны, наименование города, стоимость тура. Написать программу, выдающую следующую информацию:

-список туров в страну Х с указанием наименования города и стоимости тура;

-самый дорогой тур в страну Х.

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

18

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

-список отличников группы Х;

-процент отличников по отношения к общему количеству студентов группы Х.

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

19

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

-список абонентов, отсортированный по полю год установки;

-количество установленных телефонов с Х года.

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

20

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

-ведомость заработной платы рабочих цеха;

-общую сумму выплат по цеху.

Стоимость сборки единицы изделия Х вводится по запросу с клавиатуры.

21

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

Написать программу, выдающую следующую информацию:

-подсчитать общее количество выездов за месяц;

-фамилию водителя, с наибольшим количеством выездов.

22

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

Написать программу, выдающую следующую информацию:

-список услуг клиники, отсортированный по полю название операции;

-по введенному названию операции Х распечатать стоимость и возрастные ограничения.

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

23

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

-начислить премию сотрудникам в размере оклада, стаж которых превышает Х лет:

-распечатать список сотрудников, получивших премию с указанием размера премии.

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

24

Создать массив записей, содержащий сведения о товарах магазина. Каждая запись содержит поля –

наименование товара, стоимость, количество.

Написать программу, которая;

-уменьшит стоимость товаров, количество которых не превышает Х, на 50%;

-распечатать список новых цен.

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

25

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

-список рабочих цеха, отсортированный по полю фамилия;

-общее количество изделий, собранных рабочими цеха за месяц.

26

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

Написать программу, выдающую следующую информацию:

-подсчитать общее количество выездов за месяц;

-фамилию водителя, с наибольшей суммой оплат за выезды.

27

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

наименование страны, цель поездки( например: экскурсионная, отдых), стоимость тура. Написать программу, выдающую следующую информацию:

-список туров с целью поездки Х с указанием наименования города и стоимости тура;

-самый дешевый тур с целью поездки Х.

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

28

Создать массив записей, содержащий сведения о товарах автосалона. Каждая запись содержит поля –

модель автомобиля, цвет, номер двигателя, стоимость. Написать программу, выдающую следующую информацию:

-список автомобилей модели Х с указанием цены, цвета и номера двигателя;

-самый дешевый автомобиль модели Х.

Модель автомобиля Х вводится по запросу с клавиатуры.

29

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

-список сотрудников женского пола в возрасте от 18 и до 55 лет, с указанием стажа работы;

-средний возраст сотрудников женского пола отдела Х.

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

30

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

-список товаров, стоимость которых превышает Х рублей с указанием количества;

-общую стоимость товаров на складе.

Стоимость Х вводится по запросу с клавиатуры.

121