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

Лабораторная работа № 6 Использование в программах структурированных типов данных

Цель работы: Разработка программ с использованием объектов, содержащих структурированные типы записей ─ записи и множества.

Использование структурированных данных, содержащих множество однотипных элементов (массивов), уже рассматривалось в лаб. работе № 4, задание 1.

Кроме массивов, в языке Turbo Pascal есть еще другие структурированные типы: записи и множества.

  1. Использование записей

Тип записи включает ряд компонент, называемых полями, которые могут быть разных типов. Формат объявления типа записи:

Type

<Имя типа>=Record

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

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

--------------------------

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

End;

Доступ к полям записи осуществляется с помощью составного имени:

указывается имя записи и через точку ─ имя поля.

Для упрощения доступа к полям записи используется оператор присоединения With: With <переменная>Do <операторы, содержащие записи>. В этом случае для доступа к полю достаточно указать его имя.

Задание: Сформировать базу данных, содержащую сведения о 15-ти студентах. База данных состоит из 5-ти полей: фамилия, имя, номер группы, год рождения, город, где закончил школу. Вывести на экран записи, в которых содержатся все имеющиеся сведения о студентах, закончивших школу в Томске.

Набрать и отладить программу.

Методика выполнения работы

  1. Программа:

Program BDS ;

Uses crt;

Const

n=15;

Type Spisok=Record {Задание типа Spisok -записи с пятью полями}

Fam:String[20];

Ngr, Im, Gor:String[10];

Gr:Integer

End;

Var Student: Array[1..n] of Spisok; {Объявление одномерного массива Student, тип которого – запись Spisok}

i:Integer;

Begin

Clrscr;

For i:=1 To n Do

Begin

Writeln(‘Фамилия’,i:2,’-го ст-та’); Readln(Student[i].Fam);

Writeln(‘Имя’,i:2,’-го ст-та’); Readln(Student[i].Im);

Writeln(‘Номер группы’,i:2,’-го ст-та’); Readln(Student[i].Ngr);

Writeln(‘Год рождения’,i:2,’-го ст-та’); Readln(Student[i].Gr);

Writeln(‘Город’,i:2,’-го ст-та’); Readln(Student[i].Gor)

End;

Writeln (‘Данные о студентах, закончивших школу в г. Томске’);

Writeln;

Writeln(‘ Фамилия Имя Номер группы Год рождения’);

For i:=1 To n Do

If Student[i].Gor=’Томск’ Then

Writeln(Student[i].Fam,’ ‘,Student[i].Im,’ ‘,Student[i].Ngr,’ ’,

Student[i].Gr:4)

End.

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

  2. Введите в программу изменения, чтобы вместо составного имени использовалось просто имя поля. Для этого в соответствующих местах программы ( при вводе и выводе) надо использовать оператор With. Например, при вводе:

For i:=1 To n Do

Begin

With Student[i] Do

Begin <Ввод данных> End

End;

    1. Проведите расчеты по откорректированной программе, убедитесь, что результаты работы программы не изменились, а обращаться к полям записи стало проще.