Использование вложенного оператора If.

Условные операторы в Pascal можно вкладывать друг в друга. Для этого используется вложенный оператор IF. Рассмотрим это на примере программы, которая будет считать количество корней квадратного уравнения.

Ввод символов с клавиатуры.

Ввод символов с клавиатуры почти не отличается от ввода чисел с клавиатуры. Для того чтобы ввести какие-то символы (буквы, знаки и т.д.) с клавиатуры необходимо для переменных использовать символьный тип данных Char.

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

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

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

Вложенный арифметический цикл.

Под вложенным арифметическим циклом понимают такую алгоритмическую структуру, при которой в тело одного цикла с параметром включен другой цикл со своим параметром.

Вложенный арифметический цикл. Часть 2.

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

Из предыдущего примера легко заметить, что при каждом обращении к полю записи следует указывать имя этой записи. Если вы работаете с полями одной и той же записи, то этой проблемы можно избежать благодаря оператору присоединения 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.Использование оператора WITH ... DO.