Новые книги

В этой книге представлена методика избавления от нежелательных привычек с помощью повторения коротких ключевых фраз, напоминающих вам о ваших целях и решениях. Короткие фразы из этой книги работают, потому что они побеждают автоматическую систему и помогают вам сознательно понимать то, что вы сейчас делаете, они также служат вам коротким напоминаем о то, что вы хотите сделать в данный момент. Вы начинаете с одной фразы, повторяете ее до тех пор, пока она не «въедается» в вас настолько, что повторения становятся уже не нужны, затем беретесь за следующее изречение. С помощью этой методики вы сможете отказаться от «автопилота» и внедрять в свою жизнь сознательные изменения.

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

29. Записи

29. Записи

   Запись представляет собой совокупность ограниченного  числа  логи-

чески связанных компонент,  принадлежащих к разным типам.  Компоненты

записи называются полями, каждое из которых определяется именем. Поле

записи содержит имя поля, вслед за которым через двоеточие указывает-

ся тип этого поля. Поля записи могут относиться к любому типу, допус-

тимому в языке Паскаль, за исключением файлового типа.

   Описание записи   в   языке   ПАСКАЛЬ   осуществляется  с  помощью

служебного слова RECORD,  вслед за которым описываются компоненты за-

писи. Завершается описание записи служебным словом END.

   Например, записная книжка содержит фамилии,  инициалы и номера те-

лефона, поэтому отдельную строку в записной книжке удобно представить

в виде следующей записи:

  

         type   Row=Record

                     FIO: String[20];

                     TEL: String[7]

                    end;

         var    str: Row;

 

   Описание записей возможно и без использования имени типа,   напри-

мер:

         var  str: Record

                    FIO: String[20];

                    TEL: String[7]

                   end;

 

   Обращение к записи в целом допускается только в операторах присва-

ивания, где  слева и справа от знака присваивания используются  имена

записей одинакового типа. Во всех остальных случаях оперируют отдель-

ными полями записей.  Чтобы обратиться к отдельной компоненте записи,

необходимо задать  имя записи и через точку указать имя нужного поля,

например:

  

         str.FIO,   str.TEL

 

   Такое имя называется составным. Компонентой записи может быть так-

же запись,    в таком случае составное имя будет содержать не два,  а

большее количество имен.

   Обращение к  компонентам записей можно упростить,  если воспользо-

ваться оператором присоединения with.

   Он позволяет заменить составные имена,  характеризующие каждое по-

ле, просто на имена полей, а имя записи определить в операторе присо-

единения:

  

         with M do OP;

 

   Здесь М  -  имя  записи,   ОР  - оператор,  простой или составной.

Оператор ОР представляет собой область действия оператора присоедине-

ния, в пределах которой можно не использовать составные имена.

   Иногда содержимое отдельной записи зависит от значения  одного  из

ее полей.  В языке ПАСКАЛЬ допускается описание записи,  состоящей из

общей и вариантной частей.  Вариантная часть задается с помощью конс-

трукции

         case P of,

 

где Р - имя  поля из общей  части  записи. Возможные значения, прини-

маемые этим полем,  перечисляются так же, как и в операторе варианта.

Однако вместо указания выполняемого действия, как это делается в опе-

раторе варианта,    указываются поля варианта,  заключенные в круглые

скобки. Описание вариантной части завершается служебным словом end.

   Тип поля Р можно указать в заголовке вариантной части, например:

  

         case P: Integer of

  

   Инициализация записей  осуществляется  с  помощью   типизированных

констант:

  

   type

     RecType= Record

               x,y: Word;

               ch: Char;

               dim: Array[1..3] of Byte

              end;

  

   const

     Rec: RecType= ( x: 127; y: 255;

                     ch: 'A';

                     dim: (2, 4, 8) );