Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_ОАиП.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
5.06 Mб
Скачать

Лабораторная работа № 27-28.

Тема: Использование комбинированного типа данных в решении задач.

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

Пример выполнения задания.

Определение суммарного количество необходимого бензина и суммарное число жителей, которое можно эвакуировать. Обозначение: cor-емкость бензобака;

kol-количество посадочных мест.

Type vid = (foot,bicycle,car,motor,grus);

rec = record

fam, ul:string[20];

case vidtr:vid of

foot, bicycle:(); {пустой список полей}

car, motor, Grus:(cor, kol: byte) end;

var M:array[1..1000] of rec;

S, SG:integer; i:integer; p:byte;

begin

S:=0;

SG:=0

for i:=1 to 1000 do

with M[i] do begin

writeln (′ввод фамилий′);

readln (fam);

writeln(′улица′); readln(ul );

writeln (′Ввод вида транспорта 1- пешком, 2- велосипед, 3-

автомобиль, 4- мотоцикл, 5- грузовик′);

readln (P);

case P of

1: vidtr:= foot;

2: vidtr:= bicycle;

3: vidtr:= car;

4: vidtr:= motor;

5: vidtr:= Grus

else writeln(′неверно выбран вид транспорта′); exit

end;{для case}

case vidtr of

foot, bicycle:() ; {пустой оператор}

motor: begin

repeat

writeln (′1- коляска есть, 2- нет′);

readln (P);

until (P=1) or (P=2)

if P=1 then kol:=3

else kol:=2;

writeln (′размер бака′);

readln(cor);

end;

Car, Grus: begin

writeln(′ввод размера бака и число мест′);

readln (cor,kol);

end;

end; {для case}

end; {для with}

for i:=1 to 1000 do

case M[i].vidtr of

Car, Motor, Grus: begin

S:=S +M[i].kol;

SG:= SG + M[i].cor end;

bicikle: S:=S+1;

end; {для case}

writeln (′Необходимо горючего ′,SG,′ литров′);

writeln (′можно вывезти ′,S,′ человек′); end.

Практические задания на тип Record

1. Сформировать список лыжников, участвующих в пробеге. По каждому лыжнику вводится следующая информация: фамилия; страна; порядковый номер в забеге; время старта: час, мин., сек.; время финиша: час., мин., сек.; время пробега дистанции (последнее сформировать самостоятельно).

а) отсортировать список в порядке занятых мест;

б) вывести на экран фамилию спортсмена-победителя.

2. Каждая запись имеет следующие поля: фамилия, специальность, стаж работы по специальности. Сформировать массив записей на работников СМУ (30 человек). Используя сформированный массив, вывести на экран фамилии работников, стаж работы которых превышает 10 лет.

3. Запись состоит из следующих полей фамилия, номер телефона, адрес. Сформировать массив абонентов указанной структуры. Выдавать по введенной фамилии и адресу номер телефона.

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

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

6. Задан список группы студентов (фамилия, пол, год рождения). Составить список студентов (мужского пола) заданного года рождения.

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

а) составить список лиц, не имеющих в списке однофамильцев;

б) список однофамильцев;

в) составить два списка, включив в первый мужчин, во второй - женщин.

г) составить список встречающихся имён и подсчитать, как часто встречается каждое;

д) составить список "тёзок";__

е) напечатать список студентов одного роста.

8. Сформировать список группы студентов, каждая запись которого имеет следующую структуру: фамилия, пол, рост. Для определения кандидатов в баскетбольную команду, вывести на экран фамилии студентов, рост которых превышает 170 см.

а) мужчин;

б) женщин;

в) определить средний рост женщин (мужчин);

г) определить имя самого высокого мужчины (женщины).

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

а) определить средний возраст лиц, приехавших в командировку;

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

возрастания номеров по книге регистрации.

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

а) определить средний возраст работающих в цехе;

б) получить список рабочих, имеющих 4-ый разряд, отсортированный в порядке возрастания табельных номеров.

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

12. Сформировать массив следующей структуры: шифр детали, номер стеллажа, количество деталей, норма деталей. Выяснить, каких деталей и в каком количестве не достаёт на складе.

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

а) определить процент книг с заданным годом издания;

б) получить список новых изданий;

в) получить список книг одного автора.

14. Сформировать массив плана производства продукции следующей структуры: шифр изделия, количество, дата изготовления, цех -производитель. Определить количество продукции, которое выпустил за плановый период определённый цех.

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

а) поиска самого старшего мужчины из группы;

б) печатающую все фамилии студентов, начинающиеся с литер ′Бук′.

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

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

а) печатающей название самой высокой вершины из списка;

б) упорядочить список по возрастанию высоты вершины.