
- •1.1.2. Структура современной информатики
- •1.1.3. Информационные ресурсы
- •1.2. История развития информатики
- •1.3. Место информатики в ряду других фундаментальных наук
- •1.4. Информационные технологии
- •1.5. Социально-экономические аспекты информационных технологий
- •1.6. Правовые и этические аспекты информационных технологий
- •2. Информация
- •2.1. Понятие информации. Носители информации. Сигналы
- •2.2. Измерение информации. Энтропия. Количество информации
- •2.2.1. Структурная мера информации
- •2.2.2. Статистическая мера информации
- •2.2.3. Семантическая мера информации
- •2.3. Свойства информации
- •3. Теоретические аспекты обработки информации
- •3.1. Устройства обработки информации и их характеристики
- •3.1.1. Краткая история развития устройств обработки информации
- •3.2. Классическая архитектура эвм
- •3.3. Характеристика основных блоков эвм
- •3.4. Основной цикл работы эвм
- •3.5. Накопители информации
- •3.6. Внешние устройства эвм
- •3.2. Технология обработки информации
- •3.2.1. Информация и данные
- •Простые (неструктурированные) типы данных
- •Структурированные типы данных
- •Операции с данными
- •3.2.2. Файлы данных и файловые структуры Единицы представления данных
- •Единицы измерения данных
- •Единицы хранения данных
- •Понятие о файловой структуре
- •Обслуживание файловой структуры
- •Создание и именование файлов
- •Создание каталогов (папок)
- •Удаление файлов и каталогов (папок)
- •Навигация по файловой структуре
- •Управление атрибутами файлов
- •4. Инструментарии информационных технологий
- •4.1. Системное программное обеспечение
- •4.1.1. Операционные системы
- •4.1.2. Интерфейсные оболочки
- •4.1.3. Утилиты
- •4.2. Системы программирования
- •4.3. Пакеты прикладных программ
- •4.4. Системы обработки текстов
- •4.5. Системы компьютерной графики
- •4.6. Базы данных и субд
- •4.7. Электронные таблицы
- •4.8. Офисные программные средства
- •4.8.1. Средство разработки презентации Power Point
- •4.8.2. Программы-организаторы
- •4.8.3. Системы автоматизации деятельности предприятия
- •4.9. Интегрированные программные средства
- •4.10. Инструментальные программные средства для решения специальных задач
- •5. Вычислительные сети
- •5.1. Сети: основные понятия
- •Классификация сетей
- •Способы коммутации
- •Протоколы
- •5.2. Локальные вычислительные сети
- •5.2.1. Конфигурация лвс и организация обмена данными
- •Одноранговые сети
- •Иерархические сети
- •Технология совместного использования сетевых ресурсов
- •5.2.2.Топологии
- •Топология “звезда”
- •Кольцевая топология
- •Шинная топология
- •5.2.3 Протоколы передачи данных
- •Метод доступа в сетях Ethernet
- •Метод доступа в сетях Arcnet
- •Структура Internet
- •5.3.2.. Способы доступа к Internet
- •5.3.4. Типичные услуги Internet
- •Электронная почта
- •Сетевые новости Usenet
- •Протокол передачи файлов (ftp)
- •Муравей (Archie)
- •Wais – информационная система широкого пользования
- •Irc (Internet Relay Chat) – “Болтовня по Internet”
Структурированные типы данных
Описанные выше типы данных называют простыми. Основной признак, по которому можно определить величину простого типа, таков: одно имя – одно значение.
Значительно большие возможности заключают в себе структурированные данные, определяемые разработчиком программы (в пределах возможностей используемого им языка программирования). К структурированию данных разработчика программы толкает как логика прикладной задачи, так и чисто утилитарное соображение: при наличии в задаче большого количества входных и выходных данных отдельное именование каждого из них может оказаться практически невозможным.
Разумеется, действия разработчика алгоритма и программы ограничены возможностями того языка программирования, на который он ориентируется. В разных языках возможности структуризации переменных на уровне сложных структур не совпадают, но многие структуры давно стали традиционными и реализованы в большинстве практически используемых языков программирования.
Структурированные типы данных классифицируют по следующим основным признакам: однородная – неоднородная, упорядоченная – неупорядоченная, прямой доступ – последовательный доступ, статическая – динамическая. Эти признаки противостоят друг другу лишь внутри пары, а вне этого могут сочетаться.
Если все элементы, образующие структуру, однотипны (например – целые числа или символы), то структура является однородной; если же в ней «перепутаны» элементы разной природы (например, числа чередуются с символами), то неоднородной.
Структуру называют упорядоченной, если между ее элементами определен порядок следования. Примером упорядоченной математической структуры служит числовая последовательность, в которой у каждого элемента (кроме первого) есть предыдущий и последующий. Наличие индекса в записи элементов структуры уже указывает на ее упорядоченность (хотя индекс для этого не является обязательным признаком).
По способу доступа упорядоченные структуры бывают прямого и последовательного доступа. При прямом доступе каждый элемент структуры доступен пользователю в любой момент независимо от других элементов. Глядя на линейную таблицу чисел мы можем списать или заменить сразу, допустим, десятый элемент. Однако, если эта таблица не на бумаге, а, скажем, каким-то образом записана на магнитофонную ленту, то сразу десятое число нам недоступно – надо сначала извлечь девять предшествующих. В последнем случае мы имеем дело с последовательным доступом.
Если у структуры размер (длина, количество элементов) не может быть изменен «на ходу», а фиксирован заранее, то такую структуру называют статической. Программные средства информатики иногда позволяют не фиксировать размер структуры, а устанавливать его по ходу решения задачи и менять при необходимости, что бывает очень удобно. Такую структуру называют динамической. Например, при описании закономерностей движения очереди в магазине мы не знаем заранее, сколько человек в ней будет в тот или иной момент, и соответствующую структуру данных (например, список фамилий участников очереди) лучше представлять динамической.
Массивы
Самым традиционным и широко известным из структурированных типов данных является массив (иначе называемый регулярным типом) – однородная упорядоченная статическая структура прямого доступа.
Массивом называют однородный набор величин одного и того же типа, называемых компонентами массива, объединенных одним общим именем (идентификатором) и идентифицируемых (адресуемых) вычисляемым индексом. Это определение подчеркивает, что все однотипные компоненты массива имеют одно и то же имя, но различаются по индексам, которые могут иметь характер целых чисел из некоторого диапазона, литер, перечисленных констант. Индексы позволяют адресовать компоненты массива, т.е. получить доступ в произвольный момент времени к любой из них как к одиночной переменной. Обычный прием работы с массивом – выборочное изменение отдельных его компонент.
Компонентами массива могут быть не только простейшие данные, но и структурные, в том числе массивы. В этом случае мы получаем массив массивов – многомерный массив. Для индексации элементарных компонент в этом случае может потребоваться два, три и более индексов.
Записи, множества, файлы
Обобщением массива является комбинированный тип данных – запись, являющаяся неоднородной упорядоченной статической структурой прямого доступа. Запись – набор именованных компонент – полей (часто разного типа), объединенных одним общим именем и идентифицируемых (адресуемых) с помощью как имени записи, так и имен полей).
И записи, и массивы обладают одним общим свойством – произвольным доступом к компонентам. Записи более универсальны в том смысле, что для них не требуется идентичности типов их компонент. Массивы обеспечивают большую гибкость – индексы их компонент можно вычислять в отличие от имен полей записей.
Существенно иные возможности дает структура данных, моделирующая свойства математического объекта – множества.
Над множеством могут быть выполнены следующие операции:
1) объединение множеств (операция сложения ‘+’);
2) пересечение множеств (операция умножения ‘*’);
3) теоретико-множественная разность (вычитание множеств ‘-’);
4) проверка принадлежности элемента множеству.
Различия между множеством и массивом очень существенны – размер множества заранее не оговаривается (хотя и ограничен компьютерной реализацией, например, 255), не существует иного способа доступа к элементам множества, кроме как проверкой принадлежности множеству.
Более сложной, чем рассмотренные выше, из предусмотренных в современных системах программирования структур данных является очередь (файл).
Понятие «файл» при всей своей привычности употребляется в информатике в нескольких не совсем совпадающих смыслах. Здесь мы остановимся лишь на представлении о файле как однородной упорядоченной динамической структуре последовательного доступа – очереди.
Очередь – это линейно упорядоченный набор следующих друг за другом компонент, доступ к которым происходит по следующим правилам:
1) новые компоненты могут добавляться лишь в «хвост» очереди;
2) значения компонент могут читаться (извлекаться) лишь в порядке следования компонент от «головы» к «хвосту» очереди.
Размер очереди заранее не оговаривается и теоретически может считаться бесконечным. Для запоминания (хранения) компонент очереди часто используют внешние запоминающие устройства большой емкости – магнитные диски и ленты. Отсюда другое название очереди – файл (в английском языке это слово имеет несколько значений, в том числе «картотека», «шеренга», «очередь»).
Исторически слово «файл» стало впервые применяться в информатике для обозначения последовательного набора каких-либо данных или команд (программа), хранящихся на внешнем запоминающем устройстве. Несколько позже были осознаны абстрактные, не зависящие от магнитных дисков и лент, свойства очереди как структуры данных, полезные при решении многих задач обработки информации. Такой принцип извлечения и добавления компонент к очереди часто называется «первым вошел – первым вышел» (английская аббревиатура -«FIFO»)
В языках программирования существуют и такие разновидности файлов, которые не подчиняются условию последовательности доступа к его компонентам (так называемые, файлы прямого доступа). Они уже не являются очередями.
Стек
Существует (и часто используется) и другая структура данных, в которой тот элемент, который первый в нее помещался, выходит последним и, наоборот, тот, который последним входит, выходит первым (английская аббревиатура «LIFO»). Такая структура получила название стек (или магазин – по сходству с магазином стрелкового оружия
Иерархическая организация данных
Во всех рассмотренных выше структурах отдельные элементы (компоненты, поля, составляющие) структуры были формально равноправны. Существует, однако, широкий круг задач, в которых одни данные естественным образом «подвязаны» к другим. В этом случае возникает соподчиненная (иерархическая) структура данных. Ограничимся конкретным примером. Представим себе генеалогическое дерево, корень которого – имя человека, на следующем уровне – имена его родителей, еще на следующем – имена родителей родителей и т.д. Такая структура называется двоичным деревом