![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Номер теста | Проверяемый случай | Данные | Результат |
При просмотре линейной записи слева направо первой встречается закрывающая скобка | ''a)b+1('' | ''Нет баланса'' | |
Первой встречается открывающая скобка, но число открывающих и закрывающих скобок не совпадает | ''(a+b))'' | ''Нет баланса'' | |
Есть баланс скобок | ''(a+b/(c*d))'' | ''Есть баланс'' |
END
Записи
При решении научно-технических и экономических задач обработки совокупностей большого количества значений используются массивы. Но при работе с массивами основное ограничение заключается в том, что каждый элемент массива должен иметь один и тот же тип данных. Для решения задач, в которых возникает необходимость хранить и обрабатывать совокупности данных различного типа, используются записи.
Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов, называемых полями записи. Определение типа записи начинается идентификатором Record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием имен полей и типа каждого поля. Структура объявления типа записи такова:
Type <имя типа> = Record
<имя поля1>: <тип компонентов>;
…
<имя поляN>: <тип компонентов>;
End;
VAR <имя переменной>: <имя типа>;
Пример описания записи:
Type Car=Record
Number:Integer;
Marka:String[20];
FIO:String[40];
Address:String[60];
End;
Var Mashina, Mash: Car;
В данном примере была объявлена запись с именем Car, у которой имеется 4 поля: номер, название марки машины, ФИО владельца и его адрес.
Идентификатор поля должен быть уникален только в пределах записи, однако лучше его сделать уникальным в пределах всей программы. Объем памяти, необходимый для записи, складывается из длин полей. Значения полей записи могут быть использованы в выражениях. Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация называется составным именем.
Например, доступ к полям записи Car осуществляется как: Mashina.Marka, Mashina.FIO, Mashina.Number. Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания, например:
Mashina. Number:=1645365;
Mashina.Marka:=’Volvo’;
Mashina.FIO:=’Иванов И.И.’;
Mashina. Address:=’ул.Пушкина 12-30’;
Составные имена можно использовать в операторах ввода-вывода:
Read (Mashina. Number, Mashina. FIO, Mashina. Address);
Write(Mashina. Number:4, Mashina. FIO:12, Mashina. Address:25);
Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например, Mash:=Mashina;
После выполнения этого оператора значения полей записи Mash станут равны значениям соответствующих полей записи Mashina.
В ряде задач удобно пользоваться массивами из записей. Их можно описать следующим образом:
Type Car=Record
Number:Integer;
Marka:String[20];
FIO:String[40];
Address:String[60];
End;
Var Mashins: array [1..20] of Car;
Обращение к полям такой записи имеет громоздкий вид. Для решения этой проблемы в языке Паскаль предназначен оператор With, который имеет следующий формат:
With <переменная типа запись> do <оператор>;
Один раз, указав переменную типа запись в операторе With, можно работать с именами полей как с обычными переменными,например:
With Mashina do
Begin
Number:=164536l;
Marka:=’Volvo’;;
FIO:=’Иванов И.И’;
Address:=’ул.Пушкина 12-30’;
End;
Дата публикования: 2014-11-04; Прочитано: 247 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!