Новые книги

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

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

Американские ассоциации отраслей программного обеспечения, фильмов и музыки финансировали обширные усилия по глобальному исследованию пиратства за прошлые два десятилетия, по большей части, для себя. Пиратство, несмотря на его вездесущность, было непаханым полем для независимого исследования. Эмпирические работы за прошлые десять лет, исключая отчасти исследования совместного использования файлов (файлшеринга), были редки и сосредоточены в узких областях. Сообщество интересов было столь мало, что, когда мы начали планировать этот проект в 2006, значительная его часть была включена в нашу работу. Это сообщество росло, но все еще остается ничем по масштабу сопоставлений относительно глобального, сравнительного, постоянного внимания отраслевых групп. И возможно, что еще более важно, нет ничего сопоставимого жесткой интеграции отраслевых исследований с лоббированием и кампаниями в СМИ, которые усиливают его присутствие в публичных и политических дискуссиях.

#i_001.png

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