Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФОРМАТИКА ПЕЧАТАТЬ.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
1.12 Mб
Скачать

3. Записи

 

Запись, как и массив, - это сложная переменная с несколькими компонентами, т.е. тоже структурированного типа. Однако в отличие от массивов, компоненты записи могут иметь разные типы. Кроме того, доступ к элементам массива осуществляется по индексу, а к компонентам записи - по имени.

Записи удобно использовать для хранения и обработки разнородной информации о каких-либо объектах. Например, в школе часто требуется обрабатывать на ЭВМ сведения об успеваемости учащихся. Они обязательно включают фамилии учащихся и полученные ими отметки. Фамилия конкретного учащегося будет представлена строковой константой, а его отметки - арифметическими константами целого типа.

Как средство, позволяющее обрабатывать подобные данные, используется запись.Запись - это конструкция, состоящая из фиксированного числа элементов, называемых полями. Тип записи специфицируется ключевым словом RECORD. Определение типа записи осуществляется в разделе определения типов и задается следующей конструкцией:

TYPE <идентификатор типа> = RECORD <список полей> END;

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

TYPE DATA = RECORD DAY:1..31;

            MONTH:(JAN, FEBR, MARCH, APRIL,MAY, JUNE,

                               JULY, AUG, SEPT, OCT, NOV, DEC);

                 YEAR: INTEGER;

   END;

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

VAR SCHOLL: DATA;

Доступ к отдельным компонентам записи (к отдельным полям) осуществляется по составным именам. Составное имя состоит из имени переменной типа “запись” и имени поля, разделенных точкой. Например:

SCHOOL.DATA - день поступления в школу

В качестве примера использования записи рассмотрим программу для обработки результатов сдачи выпускных экзаменов учащимися 11-го класса. В классе 30 учащихся (kc), экзамены сдают по 7 дисциплинам (kd). Для упрощения записи каждый учащийся представлен своим порядковым номером hc. Требуется ввести результаты сдачи экзаменов по каждой дисциплине, определить средний балл полученных отметок по одной дисциплине (номер hd) и средний балл каждого учащегося.

program ekzamens;

       Const kc=30;  kd=7;

         Type pupils=record hc:1..kc;

                   ball:array[1..kd] of 1..5;

                    sr:real;

                     end;

           Var gr:array [1..kc] of pupils;

                   i:1..kc; hd:1..kd; cm:real;

            Begin

                    writeln(‘Введите оценки по всем дисциплинам’);

                    for  hd := 1 to kd do

                    for i := 1 to kc do

                    read(gr[i].ball[hd]);

                    writeln(‘Введите номер предмета’);

                    readln(hd); cm := 0;

                    for i := 1 to kc do

                    cm := cm + gr[i].ball[hd];

                    writeln(‘Средний балл по предмету=‘, cm/kc:7:2);

                    writeln(‘Средние баллы учащихся ’:56);

                    for i := 1 to kc do begin

                    gr[i].sr := 0;

                    for hd := 1 to kd do

                    gr[i].sr := gr[i].sr + gr[i].ball[hd];

                    writeln(gr[i].sr/kd:8:2);

               End.