Новые книги

Инфобизнес (бизнес по продаже информации, обучение, тренинги) даст вам настоящую свободу: у вас не будет начальников; не нужно будет тащиться в пробках на работу; ваш доход будет зависеть только от вас; вы сможете наслаждаться путешествиями и зарабатывать в любой стране мира; и что самое главное – вы получите радость и удовлетворение от своей деятельности!

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

Выбор ниши, привлечение первых клиентов, создание линейки продуктов и увеличение продаж – эти и многие другие вопросы освещены в этой книге максимально подробно.

Особую ценность представляют алгоритмы действий и чек-листы, которые помогут внедрить рекомендации быстро и с максимальной эффективностью.
Кто из нас не знает, что такое LEGO? Но мало кому известно, какие изменения им пришлось пережить, чтобы достичь статуса самой популярной в мире компании по производству игрушек. Окунитесь в самое сердце LEGO, узнайте о причинах, приведших к кризису, и стратегиях, выведших ее на вершину.

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) );