Новые книги

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

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

4. Концепция типа для данных

4. Концепция типа для данных

   В математике  принято классифицировать переменные в соответствии с

некоторыми важными характеристиками. Производится строгое разграниче-

ние между вещественными, комплексными и логическими переменными, меж-

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

ний и так далее.

   При обработке данных на ЭВМ такая классификация еще более важна. В

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

или функция бывают определенного типа.

   В языке  ПАСКАЛЬ существует правило:  тип явно задается в описании

переменной или функции,  которое предшествует их использованию.  Кон-

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

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

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

или вырабатывать операция или функция;

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

можно определить по их виду или описанию;

   -каждая операция или функция требует аргументов фиксированного ти-

па и выдает результат фиксированного типа.

   Отсюда следует, что транслятор может использовать информацию о ти-

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

   Тип определяет:

   -возможные значения переменных, констант, функций, выражений, при-

надлежащих к данному типу;

   -внутреннюю форму представления данных в ЭВМ;

   -операции и  функции,   которые  могут выполняться над величинами,

принадлежащими к данному типу.

   Обязательное описание типа приводит к избыточности в тексте прог-

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

твом разработки программ и рассматривается как необходимое  свойство

современных алгоритмических языков высокого уровня.  В языке ПАСКАЛЬ

существуют скалярные и структурированные типы данных.

   К  cкалярным типам относятся стандартные типы и типы, определяе-

мые пользователем.

   Стандартные типы  включают  целые,   действительные,   символьный,

логические и адресный типы. Типы, определяемые пользователем, - пере-

числяемый и интервальный.

   Структурированные типы имеют четыре разновидности:  массивы,  мно-

жества, записи и файлы.

   Кроме перечисленных,  TURBO PASCAL  включает еще два типа - проце-

дурный и объектный.

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

которые характеризуются следующими свойствами:

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

ограниченное упорядоченное множество;

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

функция Ord, которая в качестве результата возвращает порядко-

вый номер конкретного значения в данном типе;

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

функции Pred и Succ, которые возвращают предыдущее и последую-

щее значения соответственно;

   -к любому порядковому типу могут быть применены стандартные функ-

ции Low и High,  которые возвращают наименьшее и наибольшее значения

величин данного типа.

   В языке ПАСКАЛЬ введены понятия эквивалентности и совместимости типов.

   Два типа Т1 и Т2 являются эквивалентными (идентичными),  если выполняется

одно из двух условий:

   -Т1 и Т2 представляют собой одно и то же имя типа;

   -тип Т2  описан  с использованием типа Т1 с помощью равенства или

последовательности равенств. Например:

 

   type

      T1 = Integer;

      T2 = T1;

      T3 = T2;

 

   Менее строгие ограничения определены совместимостью типов. Напри-

мер, типы являются совместимыми, если:

   -они эквивалентны;

   -являются оба либо целыми, либо действительными;

   -один тип - интервальный, другой - его базовый;

   -оба интервальные с общим базовым;

   один тип - строковый, другой - символьный.

   В ТУРБО ПАСКАЛЬ ограничения на совместимость типов можно обойти с

помощью приведения  типов.  Приведение типов позволяет рассматривать

одну и ту же величину в памяти ЭВМ как принадлежащую  разным  типам.

Для этого используется конструкция

 

   Имя_Типа(переменная или значение).

 

   Напрмер,

 

    Integer('Z')

 

представляет собой значение кода символа 'Z' в двухбайтном представ-

лении целого числа, а

 

    Byte(534)

 

даст значение 22, поскольку целое число 534 имеет тип Word и занима-

ет два байта, а тип Byte занимает один байт, и в процессе приведения

старший байт будет отброшен.