GotoXY в Pascal.

Процедура GotoXY используется в Pascal для перевода курсора в нужную позицию на экране. Для этой процедуры указываются координаты. После указания процедуры GotoXY в коде программы сообщение будет выводиться на экран в тех координатах, которые мы ...

Приоритет выполнения логических операций в Pascal.

Логические операции применяются при написании многих программ в Pascal. Все операции имеют определенный приоритет выполнения : Первой выполняется операция NOT. Второй выполняется операция AND. Последними выполняются операции OR и XOR (Они имеют ...

Процедура Writeln в Pascal

Помимо зарезервированного слова Write, для вывода сообщения на экран в Pascal используется процедура Writeln. Отличие процедуры Writeln от оператора Write заключается в том, что Writeln после вывода сообщения на экран переводит курсор на другую ...

Циклы и массивы

Примеры использования различных операторов цикла.

Примеры использования различных операторов цикла.

Линейные процессы вычислений.

Простейший алгоритм представляет собой цепочку блоков (операторов) от начального блока до конечного. Каждый блок должен быть выполнен один единственный раз. Это линейный алгоритм. Он отражает ...

Из предыдущего примера легко заметить, что при каждом обращении к полю записи следует указывать имя этой записи. Если вы работаете с полями одной и той же записи, то этой проблемы можно избежать благодаря оператору присоединения WITH, который имеет следующую синтаксическую структуру.

WITH <Переменная типа RECORD> DO <Оператор>;
Используем предыдущий пример для пояснения работы оператора присоединения.
WITH Std
DO BEGIN
Tab := 910678;
Fio := 'Петухов И.М.';
Data :='13.01.82';
Group :='ИП-11';
Stepa := 550.00;
END;
Проще эта запись, чем предыдущая или нет пусть для себя решает сам программист. С позиций надежности программы (имеется в виду ее устойчивость к неизбежной коррекции исходного кода) предыдущий пример лучше, так как не допускает альтернатив при совпадающих названиях имен полей различных записей.

Ввод данных в массив записей с клавиатуры.

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


FOR I:=1 TO 20
DO BEGIN
WRITELN('Введите данные о студенте № ', 1:1);
WITH Mstd[I] DO
BEGIN
WRITELN('Hoмер зачетной книжки');
READLN(Tab);
WRITELN('Фамилия И.О.');
READLN(FIO);
WRITELN('Дата рождения');
READLN(Data);
WRITELN('Номер группы');
READLN(Group);
WRITELN('Размер стипендии, руб.');
READLN(Stepa);
END;


Вложение записей.

Любое из полей записи может в свою очередь быть записью. В этом случае говорят о вложении записей.
Пример 17. Описать структуру данных, изображенных в табл. 3.2.

zapisi.

Эта таблица структурно отличается от табл. 3.1. В табл. 3.1 все поля были одного уровня. А в табл. 3.2 пять полей: Дисциплина 1, Дисциплина 2, Дисциплина 3, Дисциплина 4, Дисциплина 5 - образуют группу, которая подведена под общее имя — Аттестация.
Для создания такой таблицы следует использовать два типа записей ATTESTACIA и USPEVAEMOST. При этом порядок объявления этих записей существенен. Первой объявляется та запись, на которую ниже по тексту программы будет ссылка.


TYPE ATTASTACIA = RECORD
D1: BOOLEAN; {Дисциплина 1}
D2: BOOLEAN; {Дисциплина 2}
D3: BOOLEAN; {Дисциплина 3}
D4 : BOOLEAN; {Дисциплина 4}
D5: BOOLEAN; {Дисциплина 5}
END;
USPEVAEMOST = RECORD
TAB : LONGINT; {Номер зачетной книжки}
ATT : ATTESTACIA
END;
VAR USP: ARRAY[1..20] OF USPEVAEMOST;


Из текста программы видно, что для кодирования результатов аттестации выбран логический тип данных — BOOLEAN. То есть значению 'А' — аттестован соответствует TRUE, а ситуации не аттестован — 'Н/А' соответствует FALSE. Если Вам понадобиться заправка картриджей OKI обращайтесь к опытным специалистам, которые все сделают по доступным ценам. Существует ограничение на глубину вложения записей — не более 9.

Присвоение значений полям вложенных записей.

Ниже приведен пример прямого присвоения значений полям первой записи USP[1] в массиве записей USP - успеваемость группы. Уровень вложения соответствует числу разделителей имен, то есть точек в идентификаторе поля.


USP[1].TAB:= 910678; {Уровень вложения 1}
USP[1].ATT.D1:= TRUE; {Уровень вложения 2}
USP[1].ATT.D2:= TRUE;
USP[1].ATT.D3:= FALSE;
USP[1].ATT.D4:= TRUE;
USP[1].ATT.D5:= FALSE;
Используем оператор WITH для этого же примера.
WITH USP[1] {Уровень вложения 1}
DO BEGIN
TAB :=910678;
WITH ATT DO BEGIN {Уровень вложения 2}
D1:=TRUE;
D2:=TRUE;
D3:=FALSE;
D4:=TRUE;
D5:=FALSE;
END
END;


 

Комментарии  

 
+1 # Иван 25.03.2016 13:12
Усе найссс епт
Ответить
 

Добавить комментарий

   ГлавнаяПаскальЛекции по Pascal. Часть 2.ФАЙЛЫ ЗАПИСЕЙ