Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

Лабораторная работа 12 Записи

Цель работы: научиться разрабатывать и отлаживать программы с

использованием комбинированного типа - «запись».

Запись - описание комбинированного типа, состоящее из несколь­ких полей, каждое из которых имеет свой тип. Записи состоят из фиксированного числа компонентов, называемых полями записи. В отличие от массива компоненты (поля) записи могут быть различного типа. Структура объявления типа «запись»:

TYPE <ИмяТипа>=RECORD

<поле1>:<тип поля1>;

<поле2>:<тип поля2>;

...

<полеN>:<тип поляN>

end;

где <Имя_Типа> и <поля> являются правильными идентификаторами. Если тип нескольких полей совпадает, то имена полей можно перечислить че­рез запятую. Доступ к каждому из компонентов записи производится ука­занием составного имени: имени переменной и через точку имени поля.

Для упрощения доступа к полям записи может использоваться оператор присоединения. Его структура:

WITH <переменная_Типа"запись"> DO <оператор>;

Доступ к вложенным элементам таких структур (к записи в записи) выполняется записью ряда полей через точки или операторы присоединения. В Турбо Паскале также допускаются записи с вариантными полями.

Пример: Разработать программу формирования списка студентов с указанием дат рождения и выборки студентов по году рождения.

Program zapis;

USES CRT; {подключение модуля СRT}

type {определение нового типа}

student = record {запись}

name: string[15];

denRogd: RECORD {вложенная запись}

den, mes: byte;

god: word

end;

end;

var

Z: ARRAY [1..20] OF student;

g, i, n: byte; {g- год}

BEGIN

CLRSCR; {очистка экрана}

n:=20;

writeln('ВВЕДИТЕ КОЛИЧЕСТВО СТУДЕНТОВ'); READln(n);

for i:=1 to n do

begin

writeLN('ВВЕДИТЕ ИМЯ ',i,' СТУДЕНТА');

readln(z[i].name);

WRITELN ('ВВЕДИТЕ день рождения');

readLN(z[i].denRogd.den);

WRITELN ('ВВЕДИТЕ месяц рождения');

readLN(z[i].denRogd.mes);

WRITELN ('ВВЕДИТЕ год рождения');

ReadLN (z[i].denRogd.god);

end;

WRITELN ('ВВЕДИТЕ год для поиска');

writeln(' СПИСОК ');

readln(g);

for i:=1 to n do

if g=z[i].denRoad.god then

begin

Write ('ИМЯ СТУДЕНТА');

WRITELN(z[i].name);

WRITE (' Дата рождения -');

WITH z[i].denRogd DO

writeln(den,'.',mes,'.',god);

WRITELN;

end

END.

Задание 1 (программа 12_1)

1. Ввести оценки студента по 5 экзаменам. Определить средний балл и подсчитать количество удовлетворительных, хороших и отличных оценок. Напечатать название предмета, если есть «неуд».

2. Дан список студентов и оценка каждого на экзамене (оценки на N эк- заменах). Подсчитать количество удовлетворительных оценок, хоро­ших, отлич- ных и средний балл в группе. Напечатать фамилии неуспеваю­щих студентов.

3. Дан список студентов группы. Заполнить его следующими сведе­ниями: фамилия, имя, отчество; имеет ли компьютер (если имеет, то ка­кой и с какого года). Подсчитать сколько студентов имеют ПК.

4. Сформировать список студентов группы со следующими сведения­ми: Фамилия, имя, отчество, знает ли языки программирования Turbo Pas­cal, Cи (если да, где обучался и сколько лет). Подсчитать, сколько студентов знают язык Си, сколько – Turbo Pascal, сколько - оба языка.

5. Сформировать список студентов группы, в котором указать фами­лию (имя, отчество); город, в котором получил среднее образование (номер школы, если обучался в Омске). Подсчитать, сколько в группе иногородних студентов.

6. Сформировать запись «ключевые слова ТР»: слово и перевод. Подсчитать их количество. Организовать поиск: по ключевому слову - перевод и наоборот.

7. Сформировать телефонный справочник. По номеру организовать поиск владельца и наоборот.

8. Сформировать запись «Даты - праздники». Организовать в прог­рамме ввод дат, подсчитать число праздничных дней и рабочих.

9. Сформировать запись «английское слово-перевод». Вводя слово (английское или русское), найти перевод или выдать сообщение «нет в словаре». По возможности предусмотреть пополнение словаря.

10. Сформировать запись «операторы ТР»: оператор, действие. Подсчитать их количество и число операторов, имеющих повторяющие­ся ключевые слова.

11. Сформировать запись «типы ТР»: имя, тип, операции, разрешен­ные в данном типе. Подсчитать количество разных операций и вывести списки типов для каждой операции.

12. Сформировать пополняемую базу данных «Континент - страны», в которой указать столицы, численность населения, крупные города. Ор­ганизовать поиск страны по городу, стран или городов на континенте.

13. В файле задан список книг (автор, название, год издания). Разработать программу выбора книг, выпущенных ранее заданного года.

14. Сформировать список граждан, в котором указать фамилию, имя, отчество; адрес; профессию. Организовать в программе выборку и подс­чет граждан с одинаковой профессией.

15. Сформировать список студентов группы, в котором указать фами­лию, имя, отчество; день, число и месяц рождения. Организовать выбор­ки по месяцу и году рождения.

16. Дан список студентов группы. Заполнить его следующими сведе­ниями: фамилия, имя, отчество; день, число и месяц рождения. Распе­чатать список в порядке возрастания дат рождения.

17. Сформировать базу данных «Единицы измерения», в которой указать название единицы, обозначение, назначение, соотношение. Организовать поиск по любому полю.

18. Разработать базу данных «География. Реки», в которой указать название реки, местоположение, длину, глубину.

19. Разработать базу данных «Астрономия», в которой указать название звезды, величину, созвездие.

20. Разработать базу данных «Планеты солнечной системы», в которой указать название планеты, величину, удаленность, спутники.

21. Сформировать базу данных «Химические элементы», в которой указать название элемента, формулу, группу, организовать выборки.

22. Ввести сведения о человеке: фамилия, имя, отчество, пол, национальность, рост, вес, дата рождения.

23. Ввести сведения о гражданине: Ф.И.О., дата рождения, ИНН, № страхового свидетельства, № мед. полиса. Запрограммировать поиск.

24. Сформировать справочник о спортивных командах: название, город, число сыгранных игр, число очков, количество игроков.

Задание 2 (программа 12_2)

Дополнить программу 12_1 заполнением и обработкой файлов. Имя файла вводить с клавиатуры в процессе работы программы.