- •1. Основные элементы языка турбо-паскаль
- •1.1. Алфавит
- •1.2. Идентификаторы
- •1.3. Константы
- •1.4. Выражения
- •1.5. Операции
- •1.6. Стандартные функции
- •1.7. Типы данных
- •1.8. Совместимость типов
- •2. Структура простой программы на языке турбо-паскаль.
- •1. Ввод-вывод данных
- •2. Операторы языка
- •2.1. Оператор присваивания
- •2.2. Условный оператор
- •2.3. Оператор перехода. Метка
- •2.4. Составной оператор
- •2.5. Оператор варианта
- •1. Знакомство со средой турбо-паскаля
- •2. Система меню
- •3. Редактор
- •1. Цикл с условием продолжения
- •2. Цикл с условием окончания
- •3. Цикл с параметром
- •4. Вложенные циклы
- •1. Массивы. Матрицы
- •2. Файловый тип данных
- •3. Записи
- •4. Множества
- •1. Структура сложной программы
- •2. Процедуры
- •3. Функции
- •1. Технические особенности воспроизведения графики
- •2. Точки, линии, многоугольники, окружности
- •3 . Построение графиков функций
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.