Новые книги

Аннотация: Изложены основы программирования на языке Паскаль. По ходу обучения решаются десятки задач (использован проектный подход). От читателя не требуется начальных познаний в программировании, но круг затронутых тем ориентирует его в профессиональную область. Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Будет полезна студентам-первокурсникам и преподавателям информатики.
Эта книга для тех, кто давно связан с разработкой программного обеспечения. Или для тех, кто еще думает выбрать программирование своей профессией. Или для тех, кто просто привык думать и размышлять о происходящем в мире информационных технологий.

Не секрет, что основная масса софтостроения сосредоточена в секторе так называемой корпоративной разработки: от комплексных информационных систем предприятия до отдельных приложений. Поэтому немалая часть сюжетов касается именно Enterprise Programming.

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

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

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 занимает один байт, и в процессе приведения

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