Что такое «структурированные данные» и почему вы должны их использовать. Простые типы данных: переменные и константы. Плюсы и минусы микроразметки Open Graph

26.05.2017 Время прочтения: 30 минут

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

С чего все началось?

Единая схема форматов семантической разметки сайтов, которую мы сейчас все знаем и применяем, появилась в 2011 году при поддержке таких гигантов, как «Google», «Yahoo!» и «Microsoft» (позже присоединился четвертый игрок – «Яндекс»). До этого разметка данных существовала в разных форматах и не было единой структуры. К примеру, у «Yahoo!» был сервис под названием «SearchMonkey», который уже в 2008 г. позволял размечать данные на странице и формировать уникальные сниппеты в поисковой выдаче своего поисковика.

Перед корпорациями стояла глобальная цель – разработать общий формат структурированных данных, которые бы улучшали отображение сайтов в поисковых машинах и повышали качество поиска. Поставленных задач инициаторы добились, в результате чего на свет появился словарь schema.org, который объединяет в себе огромное количество правил для микроразметки данных на сайте.

Что такое структурированные данные?

Структурированные данные – это информация, которая представлена в единой и корректной форме с соблюдением определенного комплекса правил.

Расписывать принципы работы с каждым словарем мы не будем, разберем подробнее лишь три из них: Json-ld, Opne Graph и schema.org.

Начнем с популярного словаря по микроразметке schema.org. Результат коллаборации Google, Yahoo!, Microsoft и Яндекса активно развивается и регулярно обновляется и по сей день. На момент создания статьи в словаре имеются описания для 589 типов документов, 860 свойств объектов и 114 специфичных значений. Полный список всех свойств перечислен в виде разветвленной иерархии на этой странице.

Основной высший тип сущности в словаре schema.org - Thing , который, в свою очередь, делится на несколько других подтипов. Некоторые из них:

  • CreativeWork – общий набор правил для описания творческой деятельности: статьи, книги, фильмы, фотографии, программное обеспечение, и т.д.;
  • Event – набор правил для событий, которые произошли или произойдут в определенный период времени: встречи, концерты, выставки и т.д.;
  • Intangible - сервисный класс, который включает в себя несколько нематериальных вещей, таких как размеры, рейтинги, описания рабочих вакансий, услуг и т.д.;
  • Organization – набор правил для разметки организаций, полный список разных видов бизнеса перечислен на странице localBusiness . Также можно посмотреть этот список в справке Яндекса https://yandex.ru/support/webmaster/supported-schemas/address-organization.html ;
  • Person – сущность используется для описания живых, умерших, вымышленных личностей или персонажей;
  • Place – набор правил для чего-то, что имеет фиксированное физическое положение (здание, парк, памятник и т.д.);
  • Product – это все, что создается для продажи. Например, пара обуви, билет или автомобиль.

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

У большинства тегов в словаре есть варианты применения в виде примерного куска HTML-кода или JSON-LD скрипта. Ниже мы рассмотрим примеры разметок страницы со статьей (article), товаром (product) и организацией (organization).

Шаблон микроразметки статьи с помощью schema.org

Чаще всего размечаются такие микроданные как URL, datePublished, dateModified, headline, image, author, publisher и др. Рассмотрим на конкретном примере:

Примеры микроразметки статьи с помощью schema.org "ШИРИНА ЛОГО В ПИКСЕЛЯХ" height= "ВЫСОТА ЛОГО В ПИКСЕЛЯХ" src= "ССЫЛКА НА ИЗОБРАЖЕНИЕ ЛОГОТИПА" alt= /> НАЗВАНИЕ СТАТЬИ ОПИСАНИЕ СТАТЬИ ИМЯ АВТОРА ЗАГОЛОВОК H1 "ШИРИНА ПРЕВЬЮ В ПИКСЕЛЯХ" height= "ВЫСОТА ПРЕВЬЮ В ПИКСЕЛЯХ" src= "ССЫЛКА НА ИЗОБРАЖЕНИЕ ПРЕВЬЮ" alt= "АЛЬТЕРНАТИВНОЕ ОПИСАНИЕ ПРЕВЬЮ" /> ОСНОВНОЙ ТЕКСТ СТАТЬИ ДОЛЖЕН БЫТЬ ЗДЕСЬ

Подобной схемы придерживаются большинство размеченных статей. Стоит обратить внимание, что в данном примере часть тегов указываются в разделе (мета-описание и ссылка на автора в g+), а остальная часть прописывается в теле HTML-документа. Некоторые теги использовать не обязательно, к примеру, статья отлично будет себя чувствовать и без разметки тегами articleBody или publisher , но тогда вряд ли пройдет проверку на валидность в инструментах Яндекса или Google .

Изображение 3. Пример страницы в выдаче с микроразметкой статьи в Google. Рядом со статьей отображается дата публикации.



Изображение 4. Пример страницы в выдаче по тому же запросу, что и на изображении 3, только в Яндексе. Дата отображается справа, сверху указывается дата публикации или создания, а ниже дата изменения.

Шаблон микроразметки товарной карточки с помощью schema.org

Следующий вид микроразметки, который мы рассмотрим, будет product или, другими словами, семантическая разметка товарной карточки.

СОДЕРЖАНИЕ H1 "ССЫЛКА НА ИЗОБРАЖЕНИЕ" title= "СОДЕРЖАНИЕ H1" > СТОИМОСТЬ В РУБЛЯХ УКАЗЫВАЕМ ДОСТУПНОСТЬ ТОВАРА ОПИСАНИЕ ТОВАРА

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


Изображение 5. Пример из выдачи Google с указанием цены в формате «ОТ» и «ДО».

Шаблон микроразметки организации с помощью schema.org

Последний шаблон, который мы рассмотрим, – это разметка организации (organization). Обычно эту разметку применяют для структурирования информации на странице контактов.

НАЗВАНИЕ ОРГАНИЗАЦИИ УЛИЦА , ГОРОД , ОБЛАСТЬ . "ССЫЛКА НА ЛОГОТИП" /> Телефон: НОМЕР ТЕЛЕФОНА

У schema.org весьма объемный словарь. Из-за этого во время работы с ним могут возникать трудности, но далеко не все теги в разметке обязательны и от большинства можно отказаться. В приведенных примерах я указал самые основные теги, которые могут использоваться во время работы с разметкой schema.org, однако их может быть намного больше.

У Google есть специальный инструмент для разметки страниц по словарю schema.org. С его помощью создавать разметку страниц намного проще.


Изображение 6. Пример из Яндекса. Дополнительная информация об организации отображается под описанием страницы и может быть внедрена как вручную, с помощью разметки, так и с помощью сервиса Яндекс.Справочник.

Плюсы и минусы микроразметки schema.org
  • Большой словарь, который постоянно обновляется;
  • Поддерживается всеми популярными поисковыми системами;
  • Код не скрыт скриптами и целиком находится в контенте страницы;
  • Улучшает отображение сниппетов в поисковой выдаче;
  • Можно найти разметку практически для каждого сайта;
  • Существуют плагины для автоматизации формирования микроразметки;
  • Активно развивается и дополняется.
  • Большое количество схем микроразметки может отпугнуть неподготовленного пользователя;
  • Нужны начальные знания верстки и изменения кода страниц;
  • Усложняет HTML-код, что замедляет разработку сайта;
  • Вся официальная справочная документация на английском языке;
  • Не для всех свойств есть примеры использования на официальном сайте.
Инструменты для работы с микроразметкой schema.org

В работе с микроразметкой schema.org пригодятся такие сервисы, как:

  • Инструмент для проверки структурированных данных от Google;
  • Помощник по микроразметке страниц по словарю schema.org от Google. По итогу получаем HTML-код страницы с уже внедренной микроразметкой;
  • Проверка семантической разметки от Яндекса;
  • Официальный сайт разметки;
  • Неофициальный перевод сайта schema.org на русский язык;
  • «All In One Schema.org Rich Snippets », «Wprichsnippets.com », «Schema App Structured Data » - плагины для WordPress, которые формируют семантическую разметку schema.org автоматически;
  • Notepad++ - или любой другой текстовый редактор.

Данный протокол разработал «Facebook» для улучшения отображения сниппетов ссылок с внешних сайтов в социальных сетях. Это, наверное, один из самых простых и небольших словарей микроразметки. Начать внедрение разметки можно с четырех основных свойств:

  • og:title - заголовок страницы.
  • og:type - тип объекта, например, «music.album»(альбом). В зависимости от типа поддерживаются и другие свойства. Все возможные характеристики тега type перечислены на официальном сайте .
  • og:image - URL изображения.
  • og:url - канонический URL объекта.

Все теги разметки «Open Graph» прописываются в контейнере .

Помимо основных свойств также можно указать дополнительные, которые улучшат отображение ссылок в социальных сетях:

  • og:audio – URL на аудиофайл, если при открытии страницы воспроизводится музыка.
  • og:determiner - слово, которое появляется перед названием этого объекта в предложении. Тип enum (a, an, the, "", auto). Если выбрано auto, потребитель данных должен выбирать между "a" или "an". По умолчанию - " " (пусто). Тег наиболее актуален для англоязычного сегмента в связи с использованием различных артиклей вида «a», «the», «an» и т.д.
  • og:description – описание страницы, разрешенное количество символов от 160 до 295 знаков.
  • og:locale – язык и страна. Формат отображения language_TERRITORY, по умолчанию стоит en_US. Для русскоязычного сегмента прописывается тег ru_RU.
  • og:locale:alternate – альтернативный язык или страна.
  • og:site_name – название сайта.
  • og:video – URL видео.
Шаблон разметки страницы Open Graph

Ниже представлен пример HTML-кода со всеми возможными свойствами, на практике часть из указанных тегов не указывается и хватает стандартных четырех свойств:

ЗАГОЛОВОК СТРАНИЦЫ ...


Плюсы и минусы микроразметки Open Graph

Последний вид разметки и структурирования данных, который мы рассмотрим, – JSON-LD. Расшифровывается это страшное название как «JavaScript Object Notation Linked Data». За разработку формата ответственен «Консорциум Всемирной Паутины» или, другими словами, «W3C». Данный формат выполняет все ту же функцию, что и schema.org, но немного другим способом: он структурирует данные помощью JavaScript, что в несколько раз облегчает работу.

Один из плюсов этого формата в том, что для описания данных используется словарь schema.org. Таким образом, с помощью скриптов JSON-LD мы можем описать любой вид сущностей и улучшить отображение своего сайта в поисковой выдаче, затратив на это минимальное количество времени. Причем сделать это можно без внедрения HTML-тегов в тело страницы, нужно лишь указать в контейнере , а затем расписать все необходимые условия разметки и закрыть скрипт .

Для наглядности сравним разметку schema.org и JSON-LD:

Кроссовки


Кроссовки { "@context" : "https://schema.org/" , "@type" : "Product" , "price" : "100.00" } Кроссовки

Шаблон разметки статьи с помощью JSON-LD

Пример разметки с помощью JSON-LD я взял на основе микроразметки статьи в schema.org из этого же материала выше. Использованы все те же свойства.

НЗАГОЛОВОК СТАТЬИ //Указывается тип скрипта, в нашем случае это ld+json { "@context" : "https://schema.org" ,//Прописывается библиотека, которой будет размечена страница "@type" : "Article" ,//Указывается тип сущности "mainEntityOfPage" : { //Прописывается ID статьи, обычно просто указывается ссылка на статью "@type" : "WebPage" , "@id" : "ССЫЛКА НА СТАТЬЮ" }, "url" : "ССЫЛКА НА СТАТЬЮ" ,//Прописывается каноничная ссылка на статью "datePublished" : "ДАТА ПУБЛИКАЦИИ" ,//Указывается дата публикации "dateModified" : "ДАТА ИЗМЕНЕНИЯ" , //Указывается дата изменения "headline" : "ЗАГОЛОВОК H1" , //Прописывается заголовок "image" : { "@type" : "ImageObject" , "url" : "ССЫЛКА НА ПРЕВЬЮ" , //Вставляется ссылка на изображение для превью статьи "height" : ВЫСОТА ПРЕВЬЮ В ПИКСЕЛЯХ , //Прописывается высота и ширина изображения в пикселях "width" : ШИРИНА ПРЕВЬЮ В ПИКСЕЛЯХ }, "articleBody" : "" , "author" : { "@type" : "Person" , "name" : "ИМЯ АВТОРА" ,//Указывается имя автора "url" : "ССЫЛКА НА ПРОФИЛЬ АВТОРА (G+, ПЕРСОНАЛЬНАЯ СТРАНИЦА НА САЙТЕ)" //Прописывается ссылка на профиль автора в Google Plus или на персональную страницу на сайте }, "publisher" : { "@type" : "Organization " , "name" : "НАЗВАНИЕ ОРГАНИЗАЦИИ" ,//Указывается название организации "logo" : { "@type" : "ImageObject" , "url" : "ССЫЛКА НА ЛОГОТИП" ,//Указывается ссылка на логотип компании "height" : ВЫСОТА ЛОГОТИПА , //Прописывается высота и ширина логотипа "width" : ШИРИНА ЛОГОТИПА } } } ЗАГОЛОВОК СТАТЬИ

Возникает закономерный вопрос: что же лучше schema.org или JSON-LD? Тут нельзя дать однозначный ответ. Работать с микроразметкой в формате JSON-LD проще и приятнее, чем все с тем же словарем schema.org в HTML-формате, но и у него есть свои минусы. Например, поисковик Google советуют использовать эту технологию для разметки своих страниц. А вот с Яндекс ом есть проблемы: данный вид разметки пока не отображается в результатах поиска из-за скриптов, хотя страницы с разметкой JSON-LD и проходят проверку на валидность.

Поисковая система Яндекс не показывает в поисковой выдаче информацию, размеченную с помощью мета-языка JSON-LD.

Изображение 8. Письмо из техподдержки Яндекса по поводу планов насчет JSON-LD. За скриншот спасибо пользователю Oleh Holovkin .

В данном случае нужно правильно расставить приоритеты. Если нужны расширенные сниппеты в Яндексе и Google, то используем старую добрую разметку schema.org; если мы ориентируемся на Запад и наша основная поисковая система только Google, то разметку JSON-LD нужно брать и внедрять без промедлений.

Плюсы и минусы микроразметки JSON-LD
  • Формат несколько проще по сравнению с schema.org;
  • Рекомендуется Google;
  • Для движка WordPress есть качественные плагины для работы;
  • Благодаря JavaScript разметка «невидима» для рядового пользователя в отличие от HTML;
  • Скрипт помещается только в контейнер без внедрения дополнительных строчек кода в тело сайта;
  • Проходит валидацию в официальных инструментах проверки Яндекса и Google.
Как еще можно разметить сайт?

Те способы разметки, что перечислены выше, относятся к непосредственному вмешательству в исходный код страницы, однако есть и другие методы структурирования данных. Это Data Highlighter (Маркер) от Google и «Товары и цены» от Яндекса. С помощью этих инструментов можно напрямую из панели веб-мастеров расширить сниппеты страниц в поисковой выдаче.

Изображение 9. «Маркер» в Search Console и сервис «Товары и цены» от Яндекса.

Маркер Google

Для того, чтобы начать разметку, нужно:

  • Перейти к инструменту и выбрать тип данных для разметки. На данный момент их всего 9 штук:
    • Мероприятия
    • Местные организации
    • Обзоры книг
    • Приложения
    • Продукты
    • Рестораны
    • Статьи
    • Телесериалы
    • Фильмы
  • Изображение 10. Панель выбора типа информации для разметки в Search Console.


  • Далее Google предложит проверить пять страниц на корректность автоматической разметки. Если в процессе проверки будут найдены ошибки в разметке, их можно будет исправить. Уделите особое внимание ценам, если размечаете товарные карточки, так как инструмент довольно часто ошибается именно в разметке стоимости. Если инструмент разметил страницу другой тематики (например, вы размечали карточки товаров, а он предложил разметить страницу контактов), то эту страницу можно удалить с помощью кнопки в правом верхнем углу.
  • Изображение 12. Кнопка для удаления неверно определённой страницы для разметки в Search Console.

  • После проверки образцов проверяем еще раз список размеченных страниц и публикуем. По завершению в Search Console появится список всех размеченных групп страниц на сайте, которые можно редактировать или вовсе удалить.
  • Изображение 13. Пример списка уже размеченных страниц с помощью Маркера Google.

    На этом разметка с помощью Маркера Google заканчивается. В данном случае абсолютно не нужно знать HTML или JavaScript, достаточно вручную разметить каждую страницу, и Google сам обработает данные и внесет корректировки в поисковые сниппеты. Но и у Маркера есть свои плюсы и минусы.

    Плюсы и минусы микроразметки с помощью Маркера от Google
    • Разметка без вмешательства в исходный код страниц;
    • Инструмент находится непосредственно в Google Search Console;
    • Страницы размечаются полуавтоматически;
    • Можно группировать страницы по типам;
    • Разметка будет отображаться только в поисковой выдаче Google;
    • Инструмент не всегда корректно размечает информацию;
    • При разметке крупного сайта много ручной работы.
    Сервис «Товары и цены» Яндекса

    Сам по себе этот инструмент не совсем относится к привычному понимаю микроразметки страниц, так как обычно в Яндексе он применяется для загрузки информации о товаре в Яндекс.Маркет в YML-формате. Как ни странно, Яша смог найти применение данному виду информации о товаре, и сейчас в органической выдаче часто встречаются сайты, размеченные с помощью этого сервиса. Главная особенность «Товаров и цен» – это отображение в поисковой выдаче Яндекса цены на товар/услугу справа от ссылки на сайт.


    Изображение 14. Пример отображения цены услуги в выдаче Яндекса с подключенным сервисом «Товары и цены».

    Применять сервис «Товары и цены» могут не только интернет-магазины, но и организации, которые предоставляют услуги. В данном случае придется создавать YML-документ вручную.

    Итак, для того, чтобы подключить сервис «Товары и цены» в Яндексе, нужно:

  • Добавить свой сайт в веб-мастер Яндекса и перейти в сервис «Товары и цены»;
  • Затем нужно принять условия соглашения, если ранее на сайте не был подключен данный сервис.

  • Изображение 15. Яндекс предлагает ознакомиться с форматом YML и руководством по подключению.


    Плюсы и минусы инструмента «Товары и цены» Яндекса
    • Сильно отличает сайт от других конкурентов в поиске, увеличивает CTR;
    • Пользователь до перехода на сайт получает информацию о стоимости услуги/товара;
    • Помимо цены в YML-документе указываются другие параметры, которые также учитываются при формировании сниппета;
    • В большинстве популярных движков сайтов генерация файла происходит в автоматическом или полуавтоматическом режиме.
    • Результаты с ценами будут видны только в выдаче Яндекса;
    • Выгрузка YML-документа предусмотрена не во всех CMS;
    • При частой смене цен на сайте требуется регулярная генерация документа;
    • Трудозатратно, если нужно разметить большое количество страниц вручную.
    Инструменты для работы с сервисом «Товары и цены» Яндекса

    В отличие от Маркера Google для работы с YML-файлом потребуется следующие инструменты для работы:

    • Список движков сайтов с возможностью выгрузки YML-документов;
    • Генератор YML-документа для формирования файла вручную;
    Итог

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

    У каждого способа разметки данных есть свои достоинства и недостатки, перед началом внедрения следует трезво оценить свои возможности и выбрать наилучший вариант. Отдельные методы разметки можно комбинировать друг с другом, к примеру, Open Graph с schema.org и «Товарами и ценами» от Яндекса. И помните: наличие микроразметки на сайте не гарантирует изменение поискового сниппета в выдаче, в первую очередь это облегчает сканирование сайта поисковиками.

    Статью подготовил: Абдуллин Константин, Технолог SEO-эксперт компании сайт

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

    Массивы представляют собой формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. Все компоненты массива – это данные одного типа.

    Общий вид определения массива:

    Type A = array [тип индекса массива] of [тип компонент массива]

    Например, М1=array of real;

    Строки – это массив символов, но количество символов в строке может меняться. Строка трактуется как цепочка символов произвольной длины. Максимальное количество символов не более 255. Каждый символ в строке имеет свой индекс (номер).

    Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты записи (поля) могут быть различного типа. Записи позволяют объединять значения различных типов.

    Month: (Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sept, Oct, Nov, Dec);

    Year: 2000..2050;

    Множества – это наборы однотипных, логически связанных друг с другом объектов. Количество элементов, входящих в множество может меняться от 0 до 256. Именно непостоянством своих элементов множества отличаются от массивов и записей.

    Digits = Set of 1..5;

    Файл – именованная область внешней памяти. Файл содержит компоненты одного типа, кроме файлов (т.е. нельзя создать «файл файлов»). Длина файла не оговаривается и ограничивается только ёмкостью устройств внешней памяти.

    F: File of Integer;

    Более подробно со структурированными типами ознакомимся при дальнейшем изучении языка.

  • Указатель (ссылочный тип)
  • Cодержит адрес байта памяти, в котором находится значение данных определённого типа. Этот тип называют также ссылочным. Для описания используется символ ^ и идентификатор типа. Например, P=^integer;

    Использование указателей является гибким средством управления динамической памятью и предоставляет возможность обработки массивов данных большой размерности.

  • Константы
  • Константой называют величину, значение которой не меняется в процессе выполнения программы.

      Числовые константы служат для записи чисел. Различают следующие их виды:

    Целые числа: записываются со знаком + или -, или без знака, по обычным арифметическим правилам: -10 +5 5

    Вещественные числа могут записываться в одной из двух форм:

    обычная запись : 2.5 -3.14 2. - обратите внимание, что целая часть отделяется от дробной символом точки;

    экспоненциальная форма: в этой записи вещественное число представляется в виде m*10 p , где m – мантисса или основание числа, 0.1≤|m|≤1, p – порядок числа, это целочисленная константа. Действительно, любое вещественное число можно представить в экспоненциальной форме:

    153.5 -0.1535*10 3

    99.005 0.99005*10 2

    Во всех IBM-совместимых компьютерах вещественные числа хранятся как совокупность мантиссы и порядка, что позволяет упростить операции над ними, используя специальную арифметику, отдельно обрабатывающую мантиссу и порядок. Для программной записи числа в экспоненциальной форме вместо "умножить на 10 в степени" используется обозначение E или e (латинская):

    153.5 -0.1535*10 3 -0.1535E3 или -1.535E02

    99.005 0.99005*10 2 0.99005E+2 или 9.9005e+01

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

    Поскольку размер памяти, отводимой под мантиссу и порядок, ограничен, то вещественные числа всегда представляются в памяти компьютера с некоторой погрешностью . Например, простейшая вещественная дробь 2/3 дает в десятичном представлении 0,666666... и, независимо от размера памяти, выделяемой для хранения числа, невозможно хранить все его знаки в дробной части. Одной из типичных проблем программирования является учет возможных погрешностей при работе с вещественными числами.

    Шестнадцатеричные числа состоит из шестнадцатеричных цифр, которым предшествует знак $. Диапазон шестнадцатеричных чисел – от $00000000 до $FFFFFFFF.

    Кроме числовых констант существуют и другие их виды:

      Логические константы.

    Служат для проверки истинности или ложности некоторых условий в программе и могут принимать только одно из двух значений : служебное слово true обозначает истину, а false – ложь;

      Символьные константы.

    Могут принимать значение любого печатаемого символа и записываются как символ, заключенный в апострофы ("одинарные кавычки"):

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

    К символьным также относятся константы вида #X, где X – числовое значение от 0 до 255 включительно, представляющее собой десятичный ASCII -код символа. Таблицы ASCII-кодов, используемых операционными системами DOS и Windows, приведены в Приложении 1. Например, значение #65 будет соответствовать коду символа "A" латинской.

      Строковые константы.

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

    "Введите значение X:"

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

    Константы в Турбо Паскале могут быть именованными. Неименованные константы используются, например, при выводе текста сообщений в предыдущем примере. Именованные константы описываются в разделе описаний программы оператором следующего вида:

    const Имя1=Значение1;

    Имя2=Значение2;

    ИмяN=ЗначениеN;

    Здесь ключевое слово const показывает начало раздела описаний именованных констант. Ясно, что зачастую удобнее обращаться к константе по имени, чем каждый раз переписывать ее числовое или строковое значение. Пример раздела констант:

    const e=2.7182818285;

    lang="Turbo Pascal 7.1";

    Здесь описана числовая константа e со значением основания натурального логарифма и строковая константа с именем lang, содержащая строку "Turbo Pascal 7.1".

    Каждое даваемое программистом имя должно быть уникальным в пределах одной программы. Если мы включим этот раздел в свою программу, мы уже не сможем создать в ней других объектов с именами e и lang.

    Тема 4.7

    Программирование алгоритмов
    формирования и обработки
    одномерных массивов

    Структурированные данные

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

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

    Для устранения указанных проблем в алгоритмических языках используются структурированные данные. Самыми простыми структурированными данными являются массивы данных .

    Массив – это совокупность однотипных переменных (элементов массива ). Имя у всех переменных одно и то же, а для доступа к конкретному элементу массива используется дополнительный идентификатор – его порядковый номер (индекс), который начинается с 0.

    Кроме массивов в программировании для построения эффективных алгоритмов могут использоваться и другие стандартные структуры данных, такие структуры данных, как стеки, очереди, связанные списки и другие.

    Наряду со стандартными структурами данных, могут использоваться структуры данных, определяемые пользователем. Эти структуры данных определяются средствами объектно-ориентированного программирования с помощью классов .

    4.7.2. Средства описания и работы с одномерными
    массивами данных

    Массив – последовательность переменных одинакового типа, объединенных общим именем . Например: одномерный массив а(9) состоит из 10 элементов с общим именем а: a(0), a(1), a(2), a(3),..., a(9), упорядоченных по индексу i, который принимает значения от 0 до 9:

    a(i)
    i

    Массив в программе VBобъявляется точно так же, как объявляются простые переменные. Если массив объявлен локальным , его можно использовать только в той процедуре, в которой он объявлен. Если массив объявлен как глобальный , он может быть использован в любом месте программы.

    При объявлении массива оператор объявления должен включать следующую информацию:

    · имя массива – имя (идентификатор), которое используется для представления массива в программе;

    · тип данных – тип данных, который имеют элементы массива;


    · размерность (ранг) – количество измерений объявляемого массива (т.е. количество индексов при объявлении; одномерные массивы имеют одно измерение);

    · количество элементов – количество элементов, которые будут содержаться в массиве.

    Рассмотрим примеры некоторых описаний массивов:

    В этих примерах объявлены следующие массивы:

    · одномерный массив d , состоящий из 31 элемента типа Integer с индексами от 0 до 30;

    · одномерный массив a, состоящий из 11 элементов типа Double с индексами от 0 до 10;

    · двумерный массив b , состоящий из 14х11=151 элемента типа Single с индексами по строкам от 0 до 13 и по столбцам от 0 до 10.

    Обратите внимание, что значением нижней границы массива в VB может быть только 0 .

    Таким образом, массив состоит из элементов, которые могут быть доступны при помощи индексов . При обращении к элементам массива индексы записываются вслед за именем в круглых скобках и могут представлять собой любое допустимое целочислен­ное выражение. Например, d(24), a(2*i+1).

    Обратите внимание, что количество индексов указывает на размерность массива. Так, в приведенном выше примере размерность массива a(10) равна единице. Массив b(2,3) имеет размерность 2.

    В отличие от размерности , размер массива – это количество элементов в массиве. В нашем примере размер массива, а(10) равен 11.

    Перед использованием массива в программе его необходимо объявить с помощью оператора Dim , а элементам массива присвоить конкретные значения. Оператор Dim выделяет место в памяти компьютера для размещения элементов массива, обнуляет элементы числовых массивов или заполняет элементы строковых массивов пустыми строками ("""").

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

    Заполнить элементы массива конкретными значениями можно с помощью ввода значений элементов массива, с помощью оператора присваивания или с помощью инициализации элементов массива.

    Инициализация элементов массива – это поэлементное присваивание значения в операторе объявления массива. В этом случае размер массива не указывается в круглых скобках после имени массива, а определяется неявно размером списка значений. Список значений начинается с элемента с индексом 0 и заключается в фигурные скобки , например:

    Следует отметить, что независимо от конкретной задачи, алгоритмы формирования и обработки массивов обычно строятся с использованием регулярных циклических структур:

    Чтобы облегчить работу с массивами в процедурах, для определения верхней границы массива используется встроенная функция
    Bound (ИмяМассива ).

    Эта функция возвращает (определяет) номер последнего элемента массива и позволяет обрабатывать массивы в процедурах, не передавая в них в качестве параметра количество элементов массива. Например,

    Кроме того, для определения верхней границы одномерного массива можно использовать методGetUpperBound(). Поскольку массив одномерный, то в скобках следует указывать значение 0. Например:

    Кроме того, известно, что ключевое слово ByVal указывает передачу аргумента-массива по значению, а ключевое слово ByRef указывает, что аргумент-массив передается по ссылке. Заметим, что если ключевые слова ByVal или ByRef опущены, то аргумент-массив переда­ется по ссылке.

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

    Обратите внимание на то, что после имени массива, который является фактическим параметром, скобки отсутствуют .

    Как известно, передача аргументов по значению (с помощью ключевого слова ByVal) приводит к тому, что VB передает копию данных процедуре. Поэтому не следует передавать массивы по значению, если в этом нет особой необходимости.

    Cтраница 1


    Структурированные данные в языке Ада могут использоваться в виде массивов и записей. Кроме того, доступ к структурированным данным в языке Ада может осуществляться с помощью указателей. Использование массивов с неуточненными границами обеспечивает возможность параметризации массивов и использования подпрограмм, в качестве параметров которых используются массивы переменного размера.  

    Семантика переменных в языке PILOT / 2.  

    Обработка сложно структурированных данных во внешней памяти является отличительным свойством всех ЯПЗ. Но помимо этого нужны и обычные переменные. Вот почему в ЯПЗ PILOT / 2 введены регистры и стеки.  

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

    Компоненты массива представляют собой структурированные данные одного типа. Массив объединяет данные с одинаковыми свойствами. В противоположность массивам компоненты прямого (декартова) произведения могут иметь различные типы. Прямое (декартово) произведение, как и массив, является одним из основных структурированных типов данных, и его называют также записью или структурой.  

    Знания - это хорошо структурированные данные, или данные о данных, или метаданные.  

    В представлении посредством термов структурированные данные образуются при помощи функциональных символов, позволяющих собирать составляющие их части в группы. Так, например, список (10 20 30) можно было бы представить термом 10.20.30. NIL, в котором каждый функтор точка группирует элемент, расположенный слева от него, со стоящим справа хвостовым фрагментом списка. И константы, и структурированные термы можно рассматривать как по существу пассивные объекты, предназначенные для обработки процедурами.  

    На класс программ обработки структурированных данных ориентирована АЛТОП-технология, созданная на основе работ по программному обеспечению АСУ. Эта разработка включает оригинальные средства составления исходных описаний , разбираемые в разделах 2.4 и 2.5, и методику проектирования (см. гл.  

    Таким образом, класс структурированных данных представляет данные / для хранения которых необходимо создание фиксированных совокупностей форматов. Базы данных, хранящие такие данные, являются форматированными с детерминированной схемой, ориентируемой на предварительную фиксацию и классификацию объектов внешней среды, точного утверждения свойств и отношений, описываемых в базе данных из заранее созданной совокупности фиксированных форматов.  

    Под базой данных понимается совокупность структурированных данных.  

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

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

    В основу ЯЗ положены неоператорные средства описания иерархически структурированных данных. Оно однозначно определяет траекторию движения и доступа в БД. Кроме того, в ЯЗ имеются средства, аналогичные процедурным языкам программирования.  

    Формализованная анкета, предназначенная для обработки и записи структурированных данных.  

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



    Понравилась статья? Поделиться с друзьями: