Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Получение индекса книги с указанием ее авторов



Другая типичная операция, выполняемая с экземплярами Rbook, – это получение значений их полей, таких как, например, индекс книги и ее авторы. Опять можно было бы манипулировать каждым экземпляром отдельно, получая значения его поля, следующим образом:

var
  Index1,
  Author1,
  Author2: String;
    begin
    ...
    Index1 :=Exempl1.Index;
    Author1 := Exempl1.FirstName;
    Author2 := Exempl1.SecondName;
    ...
  end;
       

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

procedure GetIndex
  (
  const Book: Rbook;
  var Index1,
    Author1,
    Author2: String
  );
    begin
    Index1 := Book.Index;
    Author1 := Book.FirstName;
    Author2 := Book.SecondName;
  end;
           

Как и ранее, вместо “жесткого” кодирования переменной конкретной книги, процедура GetIndex ссылается на общую переменную Book, передаваемую в качестве параметра. Она передается как параметр вида const во избежание копирования значения фактического аргумента в локальный параметр Book во время вызова. Параметр const обеспечивает обращение к переменной как к ссылке без копирования ее значения, и, кроме того, она не может быть случайно изменена внутри процедуры.

Параметры Index1, Author1 и Author2 являются выходными параметрами, через которые передаются соответствующие строки индекса, фамилии первого и второго авторов книги. Поэтому они объявляются как параметры var и их измененные значения могут передаваться из процедуры.

Как и ранее, подпрограмма доступа к данным скрывает детали реализации. Однако этот подход требует, чтобы внутренние детали описания записи были открыты, а принадлежность подпрограммы и типа записи Rbook друг другу остается неочевидной.





Дата публикования: 2014-11-03; Прочитано: 357 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...