Основы информатики
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ТУЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Институт горного дела и строительства
Кафедра ССМиК
Теличко Виктор Григорьевич
доцент, кандидат технических наук
КОНСПЕКТ ЛЕКЦИЙ
по дисциплине
ИНФОРМАТИКА (семестр №2)
Уровень профессионального образования: высшее образование – бакалавриат
Направление подготовки: 08.03.01 «Строительство»
Профиль подготовки:
«Промышленное и гражданское строительство»
«Городское строительство и хозяйство»
Квалификация выпускника: бакалавр
Форма обучения: заочная
Тула 2016
1
Рассмотрено на заседании кафедры
протокол №
Зав. кафедрой
от «
»
20
г.
А.А.Трещев
2
1. Основы информатики
1.1. Информация
Фундаментальной чертой цивилизации является рост производства, потребления и накопления информации во всех отраслях человеческой деятельности. Вся жизнь человека так или иначе связана с получением, накоплением и обработкой информации. Что бы человек не делал: читает ли он книгу, смотрит ли он телевизор, разговаривает ли - он постоянно и непрерывно
получает и обрабатывает информацию.
Для современной цивилизации характерна небывалая скорость развития науки, техники и новых технологий. Так, от изобретения книгопечатания (середина XV века) до изобретения радиоприемника (1895 год) прошло около 440
лет, а между изобретением радио и телевидения - около 30 лет. Разрыв во
времени между изобретением транзистора и интегральной схемы составил
всего 5 лет.
В области накопления научной информации ее объем начиная с XVII
века удваивался примерно каждые 10 - 15 лет. Поэтому одной из важнейших
проблем человечества является лавинообразный поток информации в любой
отрасли его жизнедеятельности. Подсчитано, например, что в настоящее
время специалист должен тратить около 80% своего рабочего времени, чтобы
уследить за всеми новыми печатными работами в его области деятельности.
Увеличение информации и растущий спрос на нее обусловили появление отрасли, связанной с автоматизацией обработки информации - ИНФОРМАТИКИ.
Классификация информации
1. Информация подразделяется по форме представления на 2 вида:
дискретная форма представления информации - это последовательность символов, характеризующая прерывистую, изменяющуюся
величину (количество дорожно-транспортных происшествий, количество тяжких преступлений и т.п.);
аналоговая или непрерывная форма представления информации это величина, характеризующая процесс, не имеющий перерывов
или промежутков (температура тела человека, скорость автомобиля
на определенном участке пути и т.п.).
2. По области возникновения выделяют информацию:
элементарную (механическую), которая отражает процессы, явления
неодушевленной природы;
биологическую, которая отражает процессы животного и растительного мира;
социальную, которая отражает процессы человеческого общества.
3. По способу передачи и восприятия различают следующие виды информации:
3
визуальную, передаваемую видимыми образами и символами;
аудиальную, передаваемую звуками;
тактильную, передаваемую ощущениями;
органолептическую, передаваемую запахами и вкусами;
машинную, выдаваемую и воспринимаемую средствами вычислительной техники.
4. Информацию, создаваемую и используемую человеком, по общественному назначению можно разбить на три вида:
личную, предназначенную для конкретного человека;
массовую, предназначенную для любого желающего ее пользоваться (общественно-политическая, научно-популярная и т.д.) ;
специальную, предназначенную для использования узким кругом
лиц, занимающихся решением сложных специальных задач в области науки, техники, экономики.
5. По способам кодирования выделяют следующие типы информации:
символьную, основанную на использовании символов - букв, цифр,
знаков и т. д. Она является наиболее простой, но практически применяется только для передачи несложных сигналов о различных событиях. Примером может служить зеленый свет уличного светофора, который сообщает о возможности начала движения пешеходам
или водителям автотранспорта.
текстовую, основанную на использовании комбинаций символов.
Здесь так же, как и в предыдущей форме, используются символы:
буквы, цифры, математические знаки. Однако информация заложена
не только в этих символах, но и в их сочетании, порядке следования.
Так, слова КОТ и ТОК имеют одинаковые буквы, но содержат различную информацию. Благодаря взаимосвязи символов и отображению речи человека текстовая информация чрезвычайно удобна и
широко используется в деятельности человека: книги, брошюры,
журналы, различного рода документы, аудиозаписи кодируются в
текстовой форме.
графическую, основанную на использовании произвольного сочетания в пространстве графических примитивов. К этой форме относятся фотографии, схемы, чертежи, рисунки, играющие большое
значение в деятельности человек.
Свойства информации можно рассматривать в трех аспектах: техническом - это точность, надежность, скорость передачи сигналов и т.д.; семантическом - это передача смысла текста с помощью кодов и прагматическом это насколько эффективно информация влияет на поведение объекта.
1.2. Кодирование информации
Для определения количества информации был найден способ представить любой ее тип (символьный, текстовый, графический) в едином виде, что
4
позволило все типы информации преобразовать к единому стандартному виду. Таким видом стала так называемая двоичная форма представления информации. Она заключается в записи любой информации в виде последовательности только двух символов. Каждая такая последовательность называется двоичным кодом. Недостаток двоичного кодирования – длинные коды.
Но в технике легче иметь дело с большим числом простых однотипных элементов, чем с небольшим числом сложных.
Количественное измерение информации
Двоичные символы могут кодироваться любым способом: буквами А,
Б; словами ДА, НЕТ, двумя устойчивыми состояниями системы и т.д. Однако
ради простоты записи были взяты цифры 1 и 0. Обработка информации в
ЭВМ основана на обмене электрическими сигналами между различными
устройствами машины. В компьютере, хранящем, либо обрабатывающем информацию, рассматриваемые символы 0 и 1 могут также обозначаться поразному: один из них - наличием в рассматриваемом элементе электрического тока, либо магнитного поля, второй - отсутствием электрического тока,
либо магнитного поля.
Таким образом, в ЭВМ реализуются два устойчивых состояния. Эти
два устойчивых состояния информационной системы определяют единицу
измерения информации, называемую БИТОМ. Количество информации, кодируемое двоичной цифрой - 0 или 1, называется битом. Благодаря введению понятия единицы информации появилась возможность определения
размера любой информации числом битов.
Процесс получения двоичной информации об объектах исследования
называют кодированием информации. Кодирование информации перечислением всех возможных событий очень трудоемко. Поэтому на практике кодирование осуществляется более простым способом. Он основан на том, что
один разряд последовательности двоичных цифр имеет уже вдвое больше
различных значений - 00, 01, 10, 11, чем одноразрядные 0 и 1. Трехразрядная
последовательность имеет также вдвое больше значений - 000, 001, 010, 011,
100, 101, 110, 111, чем двухразрядная и т.д. Добавление одного разряда увеличивает число значений вдвое, это позволяет составить следующую таблицу
информационной емкости чисел:
1
2
9
512
2
4
10
1024
3
8
11
2048
Таблица 1. Информационная емкость чисел
4
5
6
7
8
16
32
64
128
256
12
13
14
15
16
4096
8192
16384
32768 65536
Пользуясь вышеприведенной таблицей легко закодировать любое множество событий. Например, нам нужно закодировать 32 буквы русского ал5
фавита, для этой цели достаточно взять пять разрядов, потому что пятиразрядная последовательность имеет 32 различных значения.
Для измерения больших объемов информации пользоваться битами неудобно. Поэтому применяются кратные биту единицы измерения информации:
Кодирование различных типов информации
С помощью набора битов, можно представить любое число и любой
знак. В информационных документах широко используются не только русские, но и латинские буквы, цифры, математические знаки и другие специальные знаки, всего их количество составляет примерно 200-250 символов.
Поэтому для кодировки всех указанных символов используется восьмиразрядная последовательность цифр 0 и 1. Таким образом, текстовая информация кодируется с помощью кодовой таблицы.
Кодовая таблица – это внутреннее преставление символов в компьютере. Во всем мире в качестве стандарта принята таблица ASCII – Американский стандартный код для обмена информацией. Для хранения двоичного
кода одного символа выделен 1 байт = 8 бит.
Следует отметить, что указанный способ кодирования используется тогда, когда к нему не предъявляются дополнительные требования, такие как
необходимость указать на возникшую ошибку, исправление ошибки, секретность информации. При специальном кодировании коды получаются длиннее, чем в указанной таблице.
Наиболее просто кодируется числовая информация – она переводится
в двоичную систему исчисления.
Для представления графической информации в двоичной форме используется так называемый поточечный способ. На первом этапе вертикальными и горизонтальными линиями делят изображение. Чем больше при этом
получилось квадратов, тем точнее будет передана информация о картинке.
Как известно из физики, любой цвет может быть представлен в виде суммы
различной яркости зеленого, синего, красного цветов. Поэтому информация о
каждой клетке должна содержать кодировку значения яркости и количеств
зеленого, синего и красного компонентов. Таким образом кодируется растровое изображение – изображение, разбитое на отдельные точки. Объем растрового изображения определяется умножением количества точек на рисунке
на информационный объем одной точки, который зависит от количества возможных цветов отображения (для черно-белого изображения информационный объем одной точки равен 1 биту и кодируется двумя цифрами – 0 или 1).
Разные цвета и их оттенки получаются за счет наличия или отсутствия трех
6
основных цветов – красного, синего, зеленого и их яркости. Каждая точка на
экране кодируется с помощью 4 битов.
Векторное изображение кодируется разбиением рисунка на элементарные отрезки, геометрические фигуры и дуги. Положение этих элементарных объектов определяется координатами точек. Для каждой линии указывается ее тип (сплошная, пунктирная, штрих- пунктирная ), толщина и цвет.
Информация о векторном изображении кодируется как обычная буквенноцифровая и обрабатывается специальными программами.
Звуковая информация может быть представлена последовательностью элементарных звуков и пауз между ними. Вывод звуков из компьютера
осуществляется синтезатором речи, который считывает из памяти хранящийся код звука. Речь человека имеет большое разнообразие оттенков, поэтому
каждое произнесенное слово должно сравниваться с предварительно занесенным в память компьютера эталоном, и при их совпадении происходит его
распознавание и запись.
1.3. Основы логики и логические элементы ЭВМ
Суждение (высказывание) - это некоторое высказывание, которое
может быть истинным или ложным. Суждения бывают общими или частными.
Введем понятие логических операций.
Отрицание (не А) А (инверсия)
А
И (1)
Л (0)
А
Л (0)
И (1)
Конъюнкция (А и В) А&В (логическое умножение)
А
И
И
Л
Л
В
И
Л
И
Л
А&В
И
Л
Л
Л
Дизъюнкция (А или В) АvВ (логическое сложение)
А
В
АvВ
И
И
И
И
Л
И
Л
И
И
Л
Л
Л
7
Эквиваленция А
В
А
И
И
Л
Л
В
И
Л
И
Л
А
В
И
Л
Л
И
Базовые логические элементы реализуют три основные логические
операции:
логический элемент «И»
логический элемент «ИЛИ»
логический элемент «НЕ»
Т.к. любая логическая операция может быть представлена в виде комбинации трех основных, любые устройства компьютера, производящие обработку или хранение информации, могут быть собраны из базовых логических элементов как из кирпичиков.
Логические элементы компьютера оперируют с сигналами, представляющие собой электрические импульсы. Если есть импульс, то логическое
значение сигнала 1, нет импульса - значение 0.
1
1
A
B
C
D
A
B
C
D
A
B
C
1
НЕ
1
1
И
И
1
1
1
1
НЕ
ИЛИ
ИЛИ
1
1
И
1
И
1
1
И
И
1
0 НЕ
1
ИЛИ
1
ИЛИ
1 A&BvC&D
(AvB)&C&D
1
1
НЕ
И
1
1
ИЛИ
1 НЕ
A&BvC
1
8
1.4. Моделирование и формализация
Модель – некоторое упрощенное подобие реального объекта, который
отражает существенные особенности (свойства) изучаемого реального объекта, явления или процесса.
Моделирование – метод познания, состоящий в создании и исследовании моделей. Т.е. исследование объектов путем построения и изучения моделей.
Формализация – процесс построения информационных моделей с помощью формальных языков.
Объект – некоторая часть окружающего мира, рассматриваемого человеком как единое целое. Каждый объект имеет имя и обладает параметрами.
Параметр – признак или величина, характеризующая какое-либо свойство объекта и принимаемая различные значения.
Среда – условие существование объекта.
Операция – действие, изменяющее свойство объекта.
Система – совокупность взаимосвязанных объектов, воспринимаемая
как единое целое.
Структура – состав системы, свойства еѐ элементов, их отношения и
связи между собой.
Этапы моделирования:
Постановка задачи: описание задачи, цель моделирования, формализация задачи
Разработка модели: информационная модель, компьютерная модель
Компьютерный эксперимент – план эксперимента, проведение исследования
Анализ результатов моделирования
Модели и окружающий мир
Человек в своей деятельности постоянно создает и использует модели
окружающего мира.
1. Модели позволяют представить в наглядной форме объекты и процессы, недоступные для непосредственного восприятия: Физика:
модели двигателей; География: глобус – модель земли (реальный
размер очень большой); Химия – модели кристаллическая решетка,
молекул (реальные размеры очень маленькие); Биология – по муляжу человека изучаем внутреннее строение
2. При проектировании механизмов и устройств, зданий, электрических цепей используют модели – чертежи и макеты. Математика –
изучение объемных фигур
3. Теоретические модели (для развития науки) – теории законов, гипотез и т. д. Иногда создание таких моделей коренным образом меняет
представления человека об окружающем мире: Коперник - гелио9
центрическая система мира, модель атома Резерфорда-Бора, геном
человека)
4. Художественное творчество - перенос реальной действительности
на полотно, скульптура, театр, басня – отношения между животными – отношения между людьми
Один и тот же объект может иметь множество моделей:
объект "ЧЕЛОВЕК"
его модели:
1) химия - БИОХИМИЧЕСКИЙ СОСТАВ
2) анатомия - СКЕЛЕТ, СТРОЕНИЕ ВНУТРЕННИХ ОРГАНОВ
3) физика - МАТЕРИАЛЬНАЯ ТОЧКА
Разные объекты могут описываться одной моделью:
модель "КАРТА"
еѐ объекты:
1) ПОЛЕЗНЫЕ ИСКОПАЕМЫЕ - на карте полезных ископаемых
2) КЛИМАТИЧЕСКИЕ ЗОНЫ - на карте климатических зон
3) ГОСУДАРСТВА, СТРАНЫ - на политической карте
4) ЗВЕЗДЫ - на звездной карте
5) ТУЗЫ, ДАМЫ, ВОЛЬТЫ и пр. - игральные карты
Классификация моделей
Признаки классификаций моделей:
1) по области использования;
2) по фактору времени;
3) по отрасли знаний;
4) по форме представления.
1) Классификация моделей по области использования:
Учебные модели – используются при обучении;
Опытные – это уменьшенные или увеличенные копии проектируемого объекта. Используют для исследования и прогнозирования его будущих характеристик;
Научно-технические - создаются для исследования процессов
и явлений;
Игровые – репетиция поведения объекта в различных условиях;
Имитационные – отражение реальности в той или иной степени (это метод проб и ошибок).
2) Классификация моделей по фактору времени:
Статические – модели, описывающие состояние системы в определенный момент времени (единовременный срез информации по данному объекту). Примеры моделей: классификация
10
животных, строение молекул, список посаженных деревьев,
отчет об обследовании состояния зубов в школе и т. д.
Динамические – модели, описывающие процессы изменения и
развития системы (изменения объекта во времени). Примеры:
описание движения тел, развития организмов, процесс химических реакций.
3) Классификация моделей по отрасли знаний - это классификация по
отрасли деятельности человека: математические, биологические, химические,
социальные, экономические, исторические и т. д.
4) Классификация моделей по форме представления:
Материальные – это предметные (физические) модели. Они
всегда имеют реальное воплощение. Отражают внешнее свойство и внутреннее устройство исходных объектов, суть процессов и явлений объекта-оригинала. Это экспериментальный
метод познания окружающей среды. Примеры: детские игрушки, скелет человека, чучело, макет солнечной системы,
школьные пособия, физические и химические опыты;
Абстрактные (нематериальные) – не имеют реального воплощения. Их основу составляет информация. Это теоретический
метод познания окружающей среды. По признаку реализации
они бывают: мысленные и вербальные; информационные;
Мысленные модели формируются в воображении человека в
результате раздумий, умозаключений, иногда в виде некоторого образа. Это модель сопутствует сознательной деятельности
человека;
Вербальные – мысленные модели, выраженные в разговорной
форме. Используется для передачи мыслей;
Информационные модели – целенаправленно отобранная информация об объекте, которая отражает наиболее существенные для исследователя свойств этого объекта.
Типы информационных моделей:
Табличные – объекты и их свойства представлены в виде списка, а их
значения размещаются в ячейках прямоугольной формы. Перечень однотипных объектов размещен в первом столбце (или строке), а значения их свойств
размещаются в следующих столбцах (или строках).
Иерархические – объекты распределены по уровням. Каждый элемент
высокого уровня состоит из элементов нижнего уровня, а элемент нижнего
уровня может входить в состав только одного элемента более высокого уровня.
Сетевые – применяют для отражения систем, в которых связи между
элементами имеют сложную структуру.
По степени формализации информационные модели бывают образнознаковые и знаковые. Например:
11
Образно-знаковые модели:
Геометрические (рисунок, пиктограмма, чертеж, карта, план, объемное изображение);
Структурные (таблица, граф, схема, диаграмма);
Словесные (описание естественными языками);
Алгоритмические (нумерованный список, пошаговое перечисление,
блок-схема);
Знаковые модели:
Математические – представлены математическими формулами, отображающими связь параметров;
Специальные – представлены на специальных языках (ноты, химические формулы);
Алгоритмические – программы.
Информационные модели процессов управления - это модели, описывающие
информационные
процессы управления в сложных
процессах.
Разомкнутая
система
управления - не учитывает состояние управляемого объекта управление идет
по прямому каналу.
Замкнутая
система
управления - управляющий объект получает информацию по
каналу обратной связи о реальном положении дел, а по прямому каналу происходит управление.
1.5. Алгоритмизация и программирование
Наша учеба, работа, личные дела - это каждодневное, ежечасное решение различных задач. Каждая задача требует для своего решения выполнения
определенных действий. Многократно решая задачи, можно заметить, что
необходимые действия должны выполняться в строго определенном порядке.
В таких случаях принято говорить об алгоритме решения задач. Понятие алгоритма считается одним из древнейших. Оно возникло задолго до появления
ЭВМ, но с развитием вычислительной техники его роль значительно возросла.
Происхождение понятия алгоритма связано с именем великого среднеазиатского ученого Аль Хорезми, жившего в 9 веке н.э. Им были сформулированы впервые правила выполнения четырех арифметических действий.
Алгоритм - это точная инструкция, а инструкции встречаются во всех
областях человеческой деятельности. Однако не всякую инструкцию можно
назвать алгоритмом. Решая задачу, человек часто не задумывается над тем,
как он это делает, и порой, затрудняется записать последовательность вы12
полняемых действий. Но для того, чтобы поручить решение задачи автоматическому устройству необходимо составить алгоритм с четким указанием
последовательности действий. Чтобы автоматическое устройство могло решить задачу в соответствии с алгоритмом, оно должно понимать каждое указание алгоритма. Алгоритм применяется к искомому набору исходных величин, называемых аргументами. Цель исполнения алгоритма получение определенного результата, если в результате исполнения алгоритма не достигнута
определенная цель, значит алгоритм либо неверен, либо не завершен.
Алгоритм и его свойства
Алгоритмом называется точная инструкция исполнителю в понятной
для него форме, определяющая процесс достижения поставленной цели на
основе имеющихся исходных данных за конечное число шагов.
Основными свойствами алгоритмов являются:
1. Универсальность (массовость) - применимость алгоритма к
различным наборам исходных данных.
2. Дискретность - процесс решения задачи по алгоритму разбит на
отдельные действия.
3. Однозначность - правила и порядок выполнения действий алгоритма имеют единственное толкование.
4. Конечность - каждое из действий и весь алгоритм в целом обязательно завершаются.
5. Результативность - по завершении выполнения алгоритма обязательно получается конечный результат.
6. Выполнимость - результата алгоритма достигается за конечное
число шагов.
Алгоритм считается правильным, если его выполнение дает правильный результат. Соответственно алгоритм содержит ошибки, если можно указать такие допустимые исходные данные или условия, при которых выполнение алгоритма либо не завершится вообще, либо не будет получено никаких
результатов, либо полученные результаты окажутся неправильными.
Выделяют три крупных класса алгоритмов:
вычислительные алгоритмы, работающие со сравнительно простыми видами данных, такими как числа и матрицы, хотя сам процесс вычисления может быть долгим и сложным;
информационные алгоритмы, представляющие собой набор сравнительно простых процедур, работающих с большими объемами
информации (алгоритмы баз данных);
управляющие алгоритмы, генерирующие различные управляющие
воздействия на основе данных, полученных от внешних процессов,
которыми алгоритмы управляют.
13
Способы записи алгоритмов
Для записи алгоритмов используют самые разнообразные средства.
Выбор средства определяется типом исполняемого алгоритма. Выделяют
следующие основные способы записи алгоритмов:
вербальный, когда алгоритм описывается на человеческом языке;
символьный, когда алгоритм описывается с помощью набора символов;
графический, когда алгоритм описывается с помощью набора графических изображений.
Общепринятыми способами записи являются графическая запись с помощью блок-схем и символьная запись с помощью какого-либо алгоритмического языка.
Описание алгоритма с помощью блок схем осуществляется рисованием
последовательности геометрических фигур, каждая из которых подразумевает выполнение определенного действия алгоритма. Порядок выполнения
действий указывается стрелками. Написание алгоритмов с помощью блоксхем регламентируется ГОСТом. Внешний вид основных блоков, применяемых при написании блок схем, приведен на рисунке:
В зависимости от последовательности выполнения действий в алгоритме выделяют алгоритмы линейной, разветвленной и циклической структуры.
В алгоритмах линейной структуры действия выполняются последовательно одно за другим:
14
В алгоритмах разветвленной структуры в зависимости от выполнения или невыполнения какого-либо условия производятся различные последовательности действий. Каждая такая последовательность действий называется ветвью алгоритма.
В алгоритмах циклической структуры в зависимости от выполнения
или невыполнения какого-либо условия выполняется повторяющаяся последовательность действий, называющаяся телом цикла. Вложенным называ15
ется цикл, находящийся внутри тела другого цикла. Различают циклы с предусловием и постусловием:
Итерационным называется цикл, число повторений которого не задается, а определяется в ходе выполнения цикла. В этом случае одно повторение цикла называется итерацией.
Языки программирования
На практике в качестве исполнителей алгоритмов используются специальные автоматы - компьютеры. Для того, чтобы ЭВМ могла выполнять программу, программа должна быть записана по строгим правилам в виде, доступном для обработки на ЭВМ. Программа для такой машины записывается
на так называемом машинном языке, т. е. представляет собой последовательность двоичных чисел. Придумывать и записывать программу на машинном языке неудобно. Это нудная и долгая работа не обходилась без ошибок, которые было очень непросто найти.
Поэтому возникла идея записывать программу на так называемом алгоритмическом языке или языке программирования. Языки программирования – специально разработанные искусственные языки, предназначенные исключительно для записи алгоритмов, исполнение которых поручается ЭВМ.
Обычный разговорный язык состоит из четырех основных элементов:
символов, слов, словосочетаний и предложений. Алгоритмический язык содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания - выражениями, предложения - операторами. Ал16
горитмический язык (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв,
цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы.
Синтаксис - правила построения из символов алфавита специальных
конструкций, с помощью которых составляется алгоритм.
Семантика - система правил толкования конструкций языка. Таким
образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил семантики.
Краткая история и классификация языков программирования
Первые языки программирования были очень примитивными и мало
чем отличались от формализованных упорядоченных последовательностей
единиц и нулей, понятных компьютеру. Использование таких языков было
крайне неудобно с точки зрения программиста, так как он должен был знать
числовые коды всех машинных команд, должен был сам распределять память
под команды программы и данные.
Для того, чтобы облегчить общение человека с ЭВМ были созданы
языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились
на мнемонические обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, и отдалился от языка машинных команд.
Один из первых языков программирования – Фортран (Formula
Translation) был создан в середине 50-х годов. Благодаря своей простоте и
тому, что на этом языке накоплены большие библиотеки программ Фортран
и в наши дни остается одним из самых распространенных. Он используется
для инженерных и научных расчетов, для решения задач физики и других наук с развитым математическим аппаратом.
Для решения экономических задач был создан язык программирования
- Кобол.
Расширение областей применения ЭВМ влечет за собой создание языков, ориентированных на новые сферы применения: Снобол – алгоритмический язык для обработки текстовой информации, Лисп - алгоритмический
язык для обработки символов. Лисп находит широкое применение в исследованиях по созданию искусственного интеллекта.
В 1968 г. был объявлен конкурс на лучший язык программирования для
обучения студентов. Победителем стал язык Алгол-68, но широкого распространения не получил. Для этого конкурса Никлаус Вирт создал язык Паскаль, достаточно простой, удобный, с наличием мощных средств структурирования данных. Хотя Паскаль был разработан как язык для обучения программированию, он впоследствии получил широкое развитие и в настоящее
17
время считается одним из самых используемых языков. Для обучения младших школьников Самуэлем Пайпертом был разработан язык Лого. Он отличается простотой и богатыми возможностями.
Широкое распространение в школах в качестве обучающего языка получил язык Бейсик, позволяющий взаимодействовать с ЭВМ в режиме непосредственного диалога. Спустя много лет после изобретения Бейсика, он и
сегодня самый простой для освоения из десятков языков общецелевого программирования.
Необходимость разработки больших программ, управляющих работой
ЭВМ, потребовала создания специального языка программирования СИ в
начале 70-х г. Он является одним из универсальных языков программирования. В отличии от Паскаля, в нем заложены возможности непосредственного
обращения к некоторым машинным командам и к определенным участкам
памяти компьютера. Си широко используется как инструментальный язык
для разработки операционных систем, трансляторов, баз данных и других
системных и прикладных программ. Си – это язык программирования общего
назначения, хорошо известный своей эффективностью, экономичностью, и
переносимостью. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке Ассемблера. При
этом они имеют лучшую наглядность и их более просто сопровождать. Си
сочетает эффективность и мощность в относительно малом по размеру языке.
Появление функционального программирования привело к созданию языка
Пролог. Этот язык программирования разрабатывался для задач анализа и
понимания естественных языков на основе языка формальной логики и методов автоматического доказательства теорем.
В 80-х г. 20 века был создан язык Ада. Этот язык в дополнение к классическим свойствам, обеспечивает программирование задач реального времени и моделирования параллельного решения задач.
Существуют различные классификации языков программирования.
По наиболее распространенной классификации все языки программирования
делят на языки низкого, высокого и сверхвысокого уровня.
В группу языков низкого уровня входят машинные языки и языки
символического кодирования: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а
в качестве операндов используются не конкретные адреса, а символические
имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно-зависимыми. Машинно-ориентированные
языки – это языки, наборы операторов и изобразительные средства которых
существенно зависят от особенностей ЭВМ (внутреннего языка, структуры
памяти и т.д.).
Следующую, существенно более многочисленную группу составляют
языки программирования высокого уровня. Это Фортран, Алгол, Кобол,
Паскаль, Бейсик, Си, Пролог и т.д. Эти языки машинно-независимы, т.к.
они ориентированы не на систему команд той или иной ЭВМ, а на систему
18
операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше
памяти и медленнее выполняются, чем программы на машинных языках.
К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и
APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.
Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик, Си, ко второму типу - Лисп, Пролог, Снобол и др.
В современной информатике можно выделить два основных направления развития языков программирования: процедурное и непроцедурное.
Процедурное программирование возникло на заре вычислительной
техники и получило широкое распространение. В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий.
Среди процедурных языков выделяют в свою очередь структурные и
операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д.
В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1.
Среди операционных известны Фортран, Бейсик, Фокал.
Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века, но стремительное его развитие началось в 80-е годы,
когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию относятся функциональные и
логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более
простых, те в свою очередь разлагаются на еще более простые и т.д. Один из
основных элементов в функциональных языках - рекурсия, то есть вычисление значения функции через значение этой же функции от других элементов.
Присваивания и циклов в классических функциональных языках нет.
В логических языках программа вообще не описывает действий. Она
задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического
программирования считается Пролог. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и
скрыта от программиста.
19
Можно выделить еще один класс языков программирования - объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они
содержат
элементы
процедурного
программирования.
Объектноориентированные языки, благодаря богатому пользовательскому интерфейсу,
предлагают человеку решить задачу в удобной для него форме. Примером
такого языка может служить язык программирования визуального общения
Object Pascal.
Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки
оболочек UNIX, предполагают стиль программирования, весьма отличный от
характерного для языков системного уровня. Они предназначаются не для
написания приложения с нуля, а для комбинирования компонентов, набор
которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания
сценариев. Так, для написания сценариев широко употребляется язык Perl, а
среди разработчиков Web-страниц популярен JavaScript.
Основные элементы алгоритмического языка
Основными понятиями в алгоритмических языках являются следующие.
Имена (идентификаторы) - последовательность символов для обозначения объектов программы (переменных, массивов, функций и дp.).
Операции. Существуют следующие типы операций:
арифметические операции: сложение, обозначается символом ―+‖;
вычитание, обозначается символом ―-‖; умножение, обозначается
символом ―*‖; деление, обозначается символом ―/‖ и дp. ;
логические операции: операции ―логическое и‖, ―логическое или‖,
―логическое не‖ и др.;
операции отношения: меньше, обозначается символом ―<‖; больше, обозначается символом ―>‖; меньше или равно, обозначается
символами ―<=‖; больше или равно, обозначается символами ―>=‖;
равно, обозначается символом ―=‖; не равно, обозначается символами ―<>‖.
операция конкатенации символьных значений дpуг с другом, изображается знаком "+".
Ключевые слова – это слова языка, имеющие строго определенное назначение, которые не могут использоваться в качестве идентификаторов.
Данные - величины, обрабатываемые программой. Имеется тpи основных вида данных: константы, переменные и массивы.
Константы - это данные, которые зафиксированы в тексте программы
и не изменяются в процессе ее выполнения.
Примеры констант:
числовые: 7.5, 12;
логические: true (истина), false (ложь);
20
символьные: "А", "+";
строковые: "abcde", "информатика".
Переменные – это данные, которые могут изменять свои значения в
ходе выполнения программы. Они обозначаются именами. Переменные бывают целые, вещественные, логические, символьные и строковые.
Массивы - последовательности однотипных элементов, число которых
фиксировано и которым присвоено одно имя. Положение элемента в массиве
однозначно определяется его индексами - одним в случае одномерного массива, или несколькими, если массив многомерный.
Выражения – элементы языка, которые предназначаются для выполнения необходимых вычислений, состоят из констант, переменных, указателей функций, объединенных знаками операций. Выражения записываются в
виде линейных последовательностей символов (без подстрочных и надстрочных символов, "многоэтажных" дробей и т. д.), что позволяет вводить их в
компьютер, последовательно нажимая на соответствующие клавиши клавиатуры.
Различают выражения арифметические, логические и строковые.
Арифметические выражения служат для определения одного числового значения. Арифметические выражения записываются по следующим
правилам:
1. Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.
2. Индексы элементов массивов записываются в скобках.
3. Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и
деление и в последнюю очередь - сложение и вычитание.
4. Операции одного старшинства выполняются слева направо.
Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Таким образом, логическое выражение может принимать только два значения - "истина" или "ложь" (да или
нет).
В записи логических выражений помимо арифметических операций
сложения, вычитания, умножения, деления и возведения в степень используются операции отношения и логические операции.
Значения строковых выражений - тексты. В них могут входить строковые константы, строковые переменные и строковые функции, разделенные
знаком операции конкатенации.
Оператор – это элемент языка, который задает полное описание некоторого действия, которое необходимо выполнить. Оператор - это наиболее
крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка программирования и определяет некоторый
вполне законченный этап обработки данных. В состав операторов входят
ключевые слова; данные; выражения и т.д.
21
Стандартная функция – подпрограмма, заранее встроенная в транслятор языка для вычисления часто употребляемых функций. В качестве аргументов функций можно использовать константы, переменные и выражения.
Программа - это последовательность инструкций, предназначенных
для выполнения компьютером. В настоящее время программы оформляются
в виде текста, который записывается в файлы.
Программирование – это теоретическая и практическая деятельность
решения задачи средствами конкретного языка программирования и оформления полученных результатов в виде программы.
На стадии программирования возникает этап отладки программы –
процесс обнаружения и устранения ошибок в программе, производимой по
результатам ее тестирования на компьютере.
После окончательной отладки программа документируется, т.е. к ней
прилагается описание назначения программы и инструкция по эксплуатации.
Только после этого программа становится законченным программным продуктом, подготовленным к реализации как любой иной вид промышленной
продукции.
Языки высокого уровня работают через трансляционные программы трансляторы, которые преобразуют исходный код в последовательность
команд машинного языка. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и
компиляторы, которые сканируют исходный код для создания текста программы на машинном языке, которая затем выполняется отдельно.
В общем случае программа может иметь модульную структуру, т.е.
состоять из нескольких программных единиц, связанных между собой командами передачи управления. Такой принцип построения программ называется модульным. Программная единица, с первой команды которой начинается выполнение программы, называется головной программой. Остальные
программные единицы, входящие в единую программу, называются подпрограммами.
Подпрограмма - это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать
для выполнения из одной или нескольких точек программы.
Функция - это программная единица, которая может быть употреблена
в выражении. Функция прямо возвращает величину, которая используется
при вычислении этого выражения, и, кроме того, может возвращать величины через параметры.
Процесс разработки многомодульных программ эффективнее, особенно
если разрабатывается программа большого размера, когда над реализацией
проекта может работать несколько программистов, каждый из которых имеет
возможность модифицировать фрагменты программы, не мешая работе остальных.
22
Подпрограммы и функции позволяют создавать большие структурированные программы, которые можно делить на части. Это дает преимущества
в следующих ситуациях:
1. Если программа большая, разделение ее на части облегчает создание, тестирование и ее сборку.
2. Если программа большая и повторная компиляция всего исходного
текста занимает много времени, разделение ее на части экономит
время компиляции.
3. Если процедуру надо использовать в разных случаях разным образом, можно записать ее в отдельный файл и скомпилировать отдельно.
Инструментальные системы программирования
Для популярных языков программирования на ЭВМ существует множество систем программирования. Программисты предпочитают те системы,
которые легки в использовании, позволяют получить эффективные программы, имеют богатые библиотеки функций (подпрограмм) и мощные возможности для отладки разрабатываемых программ. В качестве примеров таких
систем программирования можно назвать Delphi, Visual C++, Visual Basic.
Системы программирования прежде всего различаются по тому, какой
язык программирования они реализуют. Среди программистов, пишущих
программы для персональных компьютеров, наибольшей популярностью
пользуются языки Си, Паскаль и Бейсик.
1.6. Компьютер и программное обеспечение
В основу работы компьютеров положен программный принцип управления, состоящий в том, что компьютер выполняет действия по заранее заданной программе. Этот принцип обеспечивает универсальность использования компьютера: в определенный момент времени решается задача соответственно выбранной программе. После ее завершения в память загружается
другая программа и т. д.
Для нормального решения задач на компьютере нужно, чтобы программа была отлажена, не требовала доработок и имела соответствующую
документацию. Поэтому относительно работы на компьютере часто используют термин программное обеспечение (ПО, software), под которым понимают совокупность программ, процедур, правил и, касающихся функционирования программной системы для решения поставленной задачи.
Повышение производительности и качества труда пользователей при
использовании программного обеспечения происходит за счѐт автоматизации
процедур расчѐтного и оформительского характера, реализуемых с помощью
разнообразных средств программирования (алгоритмических языков, пакетов
прикладных программ) и удобных средств ввода и вывода информации.
Программное обеспечение в настоящее время составляет сотни тысяч
программ, которые предназначены для обработки самой разнообразной ин23
формации с самыми различными целями. В состав программного обеспечения включают программы и необходимые для их функционирования данные.
Все программы состоят из совокупности операторов и данных, описанных на
некотором языке программирования и создаются с помощью инструментальных программ. Программы хранятся в файлах либо в виде текста программы
на определенном языке программирования, либо в виде исполняемой программы. В первом случае для выполнения программы ее необходимо наличие
транслятора или соответствующей системы программирования, во втором
случае для выполнения программы достаточно просто запустить ее.
Классификация программного обеспечения
Программное обеспечение (ПО) - это совокупность всех программ и
соответствующей документации, обеспечивающая использование ЭВМ в интересах каждого ее пользователя.
Различают системное и прикладное ПО. Схематически программное
обеспечение можно представить так:
Системное ПО – это совокупность программ для обеспечения работы
компьютера. Системное ПО подразделяется на базовое и сервисное. Системные программы предназначены для управления работой вычислительной
системы, выполняют различные вспомогательные функции (копирования,
выдачи справок, тестирования, форматирования и т. д.).
Базовое ПО включает в себя:
операционные системы;
оболочки;
сетевые операционные системы.
Сервисное ПО включает в себя программы (утилиты):
диагностики;
антивирусные;
обслуживания носителей;
архивирования;
обслуживания сети.
24
Прикладное ПО – это комплекс программ для решения задач определѐнного класса конкретной предметной области. Прикладное ПО работает
только при наличии системного ПО.
Прикладные программы называют приложениями. Они включает в себя:
текстовые процессоры;
табличные процессоры;
базы данных;
интегрированные пакеты;
системы иллюстративной и деловой графики (графические процессоры);
экспертные системы;
обучающие программы;
программы математических расчетов, моделирования и анализа;
игры;
коммуникационные программы.
Особую группу составляют системы программирования (инструментальные системы), которые являются частью системного ПО, но носят прикладной характер. Системы программирования – это совокупность программ для разработки, отладки и внедрения новых программных продуктов.
Системы программирования обычно содержат:
трансляторы;
среду разработки программ;
библиотеки справочных программ (функций, процедур);
отладчики;
редакторы связей и др.
Краткий обзор прикладного программного обеспечения
Рассмотрим наиболее часто встречающееся прикладное ПО.
Редакторы документов – это наиболее широко используемый вид
прикладных программ. Они позволяют подготавливать документы гораздо
быстрее и удобнее, чем с помощью пишущей машинки. Редакторы документов позволяют использовать различные шрифты символов, абзацы произвольной формы, автоматически переносят слова на новую строку, позволяют
делать сноски, включать рисунки, автоматически нумеруют страницы и сноски и т.д. Представители редакторов документов – программы Microsoft
Word, Wordpad.
Табличные процессоры. При работе с табличным процессором на экран выводится прямоугольная таблица, в клетках которой могут находиться
числа, пояснительные тексты и формулы для расчета значения в клетке по
именующимся данным. Все распространенные табличные процессоры позволяют вычислять значения элементов таблиц по заданным формулам, строить
по данным в таблицах различные графики и т.д. Представители семейства
табличных процессоров Microsoft Excel, Quatro Pro.
25
Графические редакторы позволяют создавать и редактировать рисунки. В простейших редакторах предоставляются возможности рисования линий, кривых, раскраски областей экрана, создание надписей различными
шрифтами и т.д. Большинство редакторов позволяют обрабатывать изображения, полученные с помощью сканеров. Представители графических редакторов – программы Adobe Photoshop, Corel Draw.
Правовые базы данных содержат тексты нормативных документов и
предоставляют возможности справки, контекстного поиска, распечатки и т.д.
Представители правовых баз данных – пакеты Гарант и Консультант+ .
Системы автоматизированного проектирования (САПР) позволяют
осуществлять черчение и конструирование различных предметов и механизмов с помощью компьютера. Среди систем малого и среднего класса в мире
наиболее популярна система AutoCad фирмы AutoDesk. Отечественный пакет с аналогичными функциями – Компас.
Системы управления базами данных (СУБД) позволяют управлять
большими информационными массивами - базами данных. Программные
системы этого вида позволяют обрабатывать на компьютере массивы информации, обеспечивают ввод, поиск, сортировку выборку записей, составление
отчетов и т.д. Представители данного класса программ – Microsoft Access,
Clipper, Paradox.
Интегрированные системы сочетают в себе возможность системы
управления базами данных, табличного процессора, текстового редактора,
системы деловой графики, а иногда и другие возможности. Как правило, все
компоненты интегрированной системы имеют схожий интерфейс, что облегчает обучение работе с ними. Представители интегрированных систем – пакет Microsoft Office и его бесплатный аналог Open Office.
Бухгалтерские программы предназначены для ведения бухгалтерского учета, подготовки финансовой отчетности и финансового анализа деятельности предприятий. Из-за несовместимости отечественного бухгалтерского учета с зарубежным в нашей стране используются почти исключительно отечественные бухгалтерские программы. Наиболее распространены системы 1C: Предприятие и Инфо-бухгалтер.
Вспомогательные программы
Вспомогательные программы (утилиты) обычно предназначены не
для решения конкретных пользовательских задач, а для обслуживания и повышения эффективности вычислительной системы. Кратко остановимся на
основных видах вспомогательных программ.
Программы-архиваторы позволяют за счет применения специальных
алгоритмов упаковки информации сжимать информацию на дисках, т.е. создавать копии файлов меньшего размера, а также объединять копии нескольких файлов в один архивный файл. Применение программ-архиваторов очень
полезно при создании архива файлов, так как в большинстве случаев значи26
тельно удобнее их хранить, предварительно сжав программамиархиваторами. Представители данных программ –WinRar и WinZip.
Программы для создания резервных копий информации позволяют
периодически копировать важную информацию, находящуюся на жестком
диске компьютера, на дополнительные носители. Представители программ
резервного копирования – APBackUp, Acronis True Image.
Антивирусные программы предназначены для предотвращения заражения компьютерными вирусами и ликвидации последствий заражения вирусом. Представители антивирусного семейства программ – Kaspersky
Antivirus, DrWeb, Norton Antivirus.
Коммуникационные программы предназначены для организации обмена информацией между компьютерами. Это программы позволяют удобно
пересылать файлы с одного компьютера на другой при соединении кабелем
их последовательных портов. Другой вид таких программ обеспечивает возможность связи компьютеров по телефонной сети (при наличии модема).
Они дают возможность посылать и принимать телефаксные сообщения.
Представители коммуникационных программ – Venta Fax, Cute FTP.
Программы для диагностики компьютера позволяют проверить
конфигурацию компьютера (количество памяти, ее использование, типы дисков и т. д.), проверить работоспособность устройств компьютера, оценить его
производительность. Представители программ диагностики компьютеров –
Sisoft Sandra, Norton System Information.
Программы для оптимизации дисков позволяют обеспечить более
быстрый доступ к информации на диске за счет оптимизации размещения
данных на диске. Эти программы перемещают все участки каждого файла
друг к другу (устраняют фрагментацию), собирают все файлы в начале диска
и т.д., за счет чего уменьшается число перемещений головок диска (т.е. ускоряется доступ к данным) и снижается износ диска. Представители программ
для оптимизации дисков - Norton Disk Doctor, Microsoft Scandisk.
Программы для печати экрана бывают весьма полезны при использовании графических программ для вывода на печать содержимого экрана,
так как отнюдь не всегда это можно сделать с помощью самой графической
программы. Представители программ для печати экрана – SnagIt,
HyperSnap-DX.
1.7. Компьютерные сети
При физическом соединении двух или более компьютеров образуется
компьютерная сеть. В общем случае, для создания компьютерных сетей необходимо специальное аппаратное обеспечение - сетевое оборудование и
специальное программное обеспечение - сетевые программные средства.
Уже сейчас есть сферы человеческой деятельности, которые принципиально не могут существовать без сетей (например работа банков, крупных
библиотек и т. д. Сети также используются при управлении крупными автоматизированными производствами, газопроводами, электростанциями и т.п.
27
Для передачи данных компьютеры используют самые разнообразные физические каналы, которые обычно называются средой передачи.
Назначение всех видов компьютерных сетей определяется двумя функциями:
обеспечение совместного использования аппаратных и программных ресурсов сети;
обеспечение совместного доступа к ресурсам данных.
Например, все участники локальной сети могут совместно использовать одно общее устройство печати - сетевой принтер или, например, ресурсы жестких дисков одного выделенного компьютера - файлового сервера.
Аналогично можно совместно использовать и программное обеспечение. Если в сети имеется специальный компьютер, выделенный для совместного использования участниками сети, он называется файловым сервером.
Группы сотрудников, работающих над одним проектом в рамках локальной сети, называются рабочими группами. В рамках одной локальной
сети могут работать несколько рабочих групп. У участников рабочих групп
могут быть разные права для доступа к общим ресурсам сети. Совокупность
приемов разделения и ограничения прав участников компьютерной сети называется политикой сети. Управление сетевыми политиками называется
администрированием сети. Лицо, управляющее организацией работы участников локальной компьютерной сети, называется системным администратором.
Основные характеристики и классификация компьютерных сетей
По территориальной распространенности сети могут быть локальными, глобальными, и региональными.
Локальная сеть (LAN - Local Area Network) - сеть в пределах предприятия, учреждения, одной организации.
Региональная сеть (MAN - Metropolitan Area Network) - сеть в пределах города или области.
Глобальная сеть (WAN - Wide Area Network) – сеть на территории государства или группы государств.
По скорости передачи информации компьютерные сети делятся на
низко-, средне- и высокоскоростные:
низкоскоростные сети - до 10 Мбит/с;
среднескоростные сети- до 100 Мбит/с;
высокоскоростные сети - свыше 100 Мбит/с.
По типу среды передачи сети разделяются на:
проводные (на коаксиальном кабеле, на витой паре, оптоволоконные);
28
беспроводные с передачей информации по радиоканалам или в инфракрасном диапазоне.
По способу организации взаимодействия компьютеров сети делят на
одноранговые и с выделенным сервером (иерархические сети).
Все компьютеры одноранговой сети равноправны. Любой пользователь
сети может получить доступ к данным, хранящимся на любом компьютере.
Главное достоинство одноранговых сетей – это простота установки и
эксплуатации. Главный недостаток состоит в том, что в условиях одноранговых сетей затруднено решение вопросов защиты информации. Поэтому такой
способ организации сети используется для сетей с небольшим количеством
компьютеров и там, где вопрос защиты данных не является принципиальным.
В иерархической сети при установке сети заранее выделяются один или несколько серверов - компьютеров, управляющих обменом данных по сети и
распределением ресурсов. Любой компьютер, имеющий доступ к услугам
сервера называют клиентом сети или рабочей станцией.
Сервер в иерархических сетях - это постоянное хранилище разделяемых ресурсов. Сам сервер может быть клиентом только сервера более высокого уровня иерархии. Серверы обычно представляют собой высокопроизводительные компьютеры, возможно, с несколькими параллельно работающими процессорами, винчестерами большой емкости и высокоскоростной сетевой картой.
Иерархическая модель сети является наиболее предпочтительной, так
как позволяет создать наиболее устойчивую структуру сети и более рационально распределить ресурсы. Также достоинством иерархической сети является более высокий уровень защиты данных. К недостаткам иерархической
сети, по сравнению с одноранговыми сетями, относятся:
1. Необходимость дополнительной ОС для сервера.
2. Более высокая сложность установки и модернизации сети.
3. Необходимость выделения отдельного компьютера в качестве
сервера.
По технологии использования сервера различают сети с архитектурой файл-сервер и сети с архитектурой клиент-сервер. В первой модели
используется файловый сервер, на котором хранится большинство программ
и данных. По требованию пользователя ему пересылаются необходимая программа и данные. Обработка информации выполняется на рабочей станции.
В системах с архитектурой клиент-сервер обмен данными осуществляется между приложением-клиентом и приложением-сервером. Хранение данных и их обработка производится на мощном сервере, который выполняет
также контроль за доступом к ресурсам и данным. Рабочая станция получает
только результаты запроса.
К основным характеристикам сетей относятся:
Пропускная способность – максимальный объем данных, передаваемых сетью в единицу времени. Пропускная способность измеряется в
Мбит/с.
29
Время реакции сети - время, затрачиваемое программным обеспечением и устройствами сети на подготовку к передаче информации по данному
каналу. Время реакции сети измеряется миллисекундах.
Топологии сетей
Топологией сети называется физическую или электрическую конфигурацию кабельной системы и соединений сети. В топологии сетей применяют
несколько специализированных терминов:
узел сети - компьютер, либо коммутирующее устройство сети;
ветвь сети - путь, соединяющий два смежных узла;
оконечный узел - узел, расположенный в конце только одной ветви;
промежуточный узел - узел, расположенный на концах более чем
одной ветви;
смежные узлы - узлы, соединенные, по крайней мере, одним путѐм,
не содержащим никаких других узлов.
Существует всего 5 основных типов топологии сетей:
1. Топология “Общая Шина”. В этом случае подключение и обмен
данными производится через общий канал связи, называемый общей шиной:
Общая шина является очень распространенной топологией для локальных сетей. Передаваемая информация может распространяться в обе стороны. Применение общей шины снижает стоимость проводки и унифицирует
подключение различных модулей. Основными преимуществами такой схемы
являются дешевизна и простота разводки кабеля по помещениям. Самый
серьезный недостаток общей шины заключается в ее низкой надежности:
любой дефект кабеля или какого-нибудь из многочисленных разъемов полностью парализует всю сеть. Другим недостатком общей шины является ее
невысокая производительность, так как при таком способе подключения в
каждый момент времени только один компьютер может передавать данные в
сеть. Поэтому пропускная способность канала связи всегда делится здесь
между всеми узлами сети.
2. Топология “Звезда”. В этом случае каждый компьютер подключается отдельным кабелем к общему устройству, называемому концентратором, который находится в центре сети:
В функции концентратора входит направление передаваемой компьютером информации одному или всем остальным компьютерам сети. Главное
30
преимущество этой топологии перед общей шиной - существенно большая
надежность. Любые неприятности с кабелем касаются лишь того компьютера, к которому этот кабель присоединен, и только неисправность концентратора может вывести из строя всю сеть. Кроме того, концентратор может играть роль интеллектуального фильтра информации, поступающей от узлов в
сеть, и при необходимости блокировать запрещенные администратором передачи.
К недостаткам топологии типа звезда относится более высокая стоимость сетевого оборудования из-за необходимости приобретения концентратора. Кроме того, возможности по наращиванию количества узлов в сети ограничиваются количеством портов концентратора. В настоящее время иерархическая звезда является самым распространенным типом топологии связей
как в локальных, так и глобальных сетях.
3. Топология “Кольцо”. В сетях с кольцевой топологией данные в сети передаются последовательно от одной станции к другой по кольцу, как
правило, в одном направлении:
Если компьютер распознает данные как предназначенные ему, то он
копирует их себе во внутренний буфер. В сети с кольцевой топологией необходимо принимать специальные меры, чтобы в случае выхода из строя или
отключения какой-либо станции не прервался канал связи между остальными
станциями. Преимущество данной топологии - простота управления, недостаток - возможность отказа всей сети при сбое в канале между двумя узлами.
4. Ячеистая топология. Для ячеистой топологии характерна схема соединения компьютеров, при которой физические линии связи установлены со
всеми рядом стоящими компьютерами:
31
В сети с ячеистой топологией непосредственно связываются только те
компьютеры, между которыми происходит интенсивный обмен данными, а
для обмена данными между компьютерами, не соединенными прямыми связями, используются транзитные передачи через промежуточные узлы. Ячеистая топология допускает соединение большого количества компьютеров и
характерна, как правило, для глобальных сетей. Достоинства данной топологии в ее устойчивости к отказам и перегрузкам, т.к. имеется несколько способов обойти отдельные узлы.
5. Смешанная топология. В то время как небольшие сети, как правило, имеют типовую топологию - звезда, кольцо или общая шина, для крупных
сетей характерно наличие произвольных связей между компьютерами. В таких сетях можно выделить отдельные произвольно подсети, имеющие типовую топологию, поэтому их называют сетями со смешанной топологией:
Модель взаимосвязи открытых систем
Основной задачей, решаемой при создании компьютерных сетей, является обеспечение совместимости оборудования по электрическим и механическим характеристикам и обеспечение совместимости информационного
обеспечения (программ и данных) по системе кодирования и формату данных. Решение этой задачи относится к области стандартизации и основано на
так называемой модели OSI (модель взаимодействия открытых систем Model of Open System Interconnections). Модель OSI была создана на основе
технических предложений Международного института стандартов ISO
(International Standards Organization).
32
Согласно модели OSI архитектуру компьютерных сетей следует рассматривать на разных уровнях (общее число уровней - до семи). Самый верхний уровень - прикладной. На этом уровне пользователь взаимодействует с
вычислительной системой. Caмый нижний уровень - физический. Он обеспечивает обмен сигналами между устройствами. Обмен данными в системах
связи происходит путем их перемещения с верхнего уровня на нижний, затем
транспортировки и, наконец, обратным воспроизведением на компьютере
клиента в результате перемещения с нижнего уровня на верхний.
Для обеспечения необходимой совместимости на каждом из семи возможных уровней архитектуры компьютерной сети действуют специальные
стандарты, называемые протоколами. Они определяют характер аппаратного взаимодействия компонентов сети (аппаратные протоколы) и характер
взаимодействия программ и данных (программные протоколы). Физически
функции поддержки протоколов исполняют аппаратные устройства (интерфейсы) и программные средства (программы поддержки протоколов). Программы, выполняющие поддержку протоколов, также называют протоколами.
Каждый уровень архитектуры подразделяется на две части:
спецификацию услуг;
спецификацию протокола.
Спецификация услуг определяет, что делает уровень, а спецификация
протокола - как он это делает, причем каждый конкретный уровень может
иметь более одного протокола.
33
Рассмотрим функции, выполняемые каждым уровнем программного
обеспечения:
1. Физический уровень осуществляет соединения с физическим каналом, так, отсоединения от канала, управление каналом. Определяется скорость передачи данных и топология сети.
2. Канальный уровень добавляет в передаваемые массивы информации вспомогательные символы и контролирует правильность передаваемых данных. Здесь передаваемая информация разбивается на
несколько пакетов или кадров. Каждый пакет содержит адреса источника и места назначения, а также средства обнаружения ошибок.
3. Сетевой уровень определяет маршрут передачи информации между
сетями, обеспечивает обработку ошибок, а так же управление потоками данных. Основная задача сетевого уровня - маршрутизация
данных (передача данных между сетями).
4. Транспортный уровень связывает нижние уровни (физический,
канальный, сетевой) с верхними уровнями, которые реализуются
программными средствами. Этот уровень разделяет средства формирования данных в сети от средств их передачи. Здесь осуществляется разделение информации по определенной длине и уточняется
адрес назначения.
5. Сеансовый уровень осуществляет управление сеансами связи между двумя взаимодействующими пользователями, определяет начало
и окончание сеанса связи, время, длительность и режим сеанса связи, точки синхронизации для промежуточного контроля и восстановления при передаче данных; восстанавливает соединение после
ошибок во время сеанса связи без потери данных.
6. Представительский - управляет представлением данных в необходимой для программы пользователя форме, производит компрессию
и декомпрессию данных. Задачей данного уровня является преобразование данных при передаче информации в формат, который используется в информационной системе. При приеме данных данный
уровень представления данных выполняет обратное преобразование.
7. Прикладной уровень взаимодействует с прикладными сетевые программами, обслуживающими файлы, а также выполняет вычислительные, информационно-поисковые работы, логические преобразования информации, передачу почтовых сообщений и т.п. Главная
задача этого уровня - обеспечить удобный интерфейс для пользователя.
8. На разных уровнях обмен происходит различными единицами информации: биты, кадры, пакеты, сеансовые сообщения, пользовательские сообщения.
34
Сетевое оборудование
Основными компонентами сети являются рабочие станции, серверы,
передающие среды (кабели) и сетевое оборудование.
Рабочими станциями называются компьютеры сети, на которых пользователями сети реализуются прикладные задачи.
Серверы сети - это аппаратно-программные системы, выполняющие
функции управления распределением сетевых ресурсов общего доступа. Сервером может быть это любой подключенный к сети компьютер, на котором
находятся ресурсы, используемые другими устройствами локальной сети. В
качестве аппаратной части сервера используется достаточно мощные компьютеры.
Сети можно создавать с любым из типов кабеля.
1. Витая пара (TP - Twisted Pair) – это кабель, выполненный в виде
скрученной пары проводов. Он может быть экранированным и неэкранированным. Экранированный кабель более устойчив к электромагнитным помехам. Витая пара наилучшим образом подходит для малых учреждений. Недостатками данного кабеля является высокий коэффициент затухания сигнала и высокая чувствительность к электромагнитным помехам, поэтому максимальное расстояние между активными устройствами в ЛВС при использовании витой пары должно быть не более 100 метров.
2. Коаксиальный кабель состоит из одного цельного или витого центрального проводника, который окружен слоем диэлектрика. Проводящий
слой алюминиевой фольги, металлической оплетки или их комбинации окружает диэлектрик и служит одновременно как экран против наводок. Общий изолирующий слой образует внешнюю оболочку кабеля.
Коаксиальный кабель может использоваться в двух различных системах передачи данных: без модуляции сигнала и с модуляцией. В первом случае цифровой сигнал используется в таком виде, в каком он поступает из ПК
и сразу же передается по кабелю на приемную станцию. Он имеет один канал
передачи со скоростью до 10 Мбит/сек и максимальный радиус действия
4000 м. Во втором случае цифровой сигнал превращают в аналоговый и направляют его на приемную станцию, где он снова превращается в цифровой.
Операция превращения сигнала выполняется модемом; каждая станция
должна иметь свой модем. Этот способ передачи является многоканальным
(обеспечивает передачу по десяткам каналов, используя для этого всего лишь
один кабель). Таким способом можно передавать звуки, видео сигналы и другие данные. Длина кабеля может достигать до 50 км.
3. Оптоволоконный кабель является более новой технологией, используемой в сетях. Носителем информации является световой луч, который
модулируется сетью и принимает форму сигнала. Такая система устойчива к
внешним электрическим помехам и таким образом возможна очень быстрая,
секретная и безошибочная передача данных со скоростью до 2 Гбит/с. Количество каналов в таких кабелях огромно. Передача данных выполняется
35
только в симплексном режиме, поэтому для организации обмена данными
устройства необходимо соединять двумя оптическими волокнами (на практике оптоволоконный кабель всегда имеет четное, парное кол-во волокон). К
недостаткам оптоволоконного кабеля можно отнести большую стоимость, а
также сложность подсоединения.
4. Радиоволны в микроволновом диапазоне используются в качестве
передающей среды в беспроводных локальных сетях, либо между мостами
или шлюзами для связи между локальными сетями. В первом случае максимальное расстояние между станциями составляет 200 - 300 м, во втором - это
расстояние прямой видимости. Скорость передачи данных - до 2 Мбит/с.
Беспроводные локальные сети считаются перспективным направлением развития ЛС. Их преимущество - простота и мобильность. Также исчезают проблемы, связанные с прокладкой и монтажом кабельных соединений - достаточно установить интерфейсные платы на рабочие станции, и сеть готова к
работе.
Выделяют следующие виды сетевого оборудования:
1. Сетевые карты – это контроллеры, подключаемые в слоты расширения материнской платы компьютера, предназначенные для передачи сигналов в сеть и приема сигналов из сети.
2. Терминаторы - это резисторы номиналом 50 Ом, которые производят затухание сигнала на концах сегмента сети.
3. Концентраторы (Hub) – это центральные устройства кабельной
системы или сети физической топологии "звезда", которые при получении пакета на один из своих портов пересылает его на все остальные. В результате получается сеть с логической структурой
общей шины. Различают концентраторы активные и пассивные. Активные концентраторы усиливают полученные сигналы и передают
их. Пассивные концентраторы пропускают через себя сигнал, не
усиливая и не восстанавливая его.
4. Повторители (Repeater)- устройства сети, усиливает и заново
формирует форму входящего аналогового сигнала сети на расстояние другого сегмента. Повторитель действует на электрическом
уровне для соединения двух сегментов. Повторители ничего распознают сетевые адреса и поэтому не могут использоваться для
уменьшения трафика.
5. Коммутаторы (Switch) - управляемые программным обеспечением
центральные устройства кабельной системы, сокращающие сетевой
трафик за счет того, что пришедший пакет анализируется для выяснения адреса его получателя и соответственно передается только
ему. Использование коммутаторов является более дорогим, но и более производительным решением. Коммутатор обычно значительно
более сложное устройство и может обслуживать одновременно несколько запросов. Если по какой-то причине нужный порт в данный
момент времени занят, то пакет помещается в буферную память
36
6.
7.
8.
9.
10.
коммутатора, где и дожидается своей очереди. Построенные с помощью коммутаторов сети могут охватывать несколько сотен машин и иметь протяженность в несколько километров.
Маршрутизаторы (Router) - стандартные устройства сети, работающие на сетевом уровне и позволяющее переадресовывать и
маршрутизировать пакеты из одной сети в другую, а также фильтровать широковещательные сообщения.
Мосты (Bridge)- устройства сети, которое соединяют два отдельных сегмента, ограниченных своей физической длиной, и передают
трафик между ними. Мосты также усиливают и конвертируют сигналы для кабеля другого типа. Это позволяет расширить максимальный размер сети, одновременно не нарушая ограничений на
максимальную длину кабеля, количество подключенных устройств
или количество повторителей на сетевой сегмент.
Шлюзы (Gateway) - программно-аппаратные комплексы, соединяющие разнородные сети или сетевые устройства. Шлюзы позволяет решать проблемы различия протоколов или систем адресации.
Они действует на сеансовом, представительском и прикладном
уровнях модели OSI.
Мультиплексоры – это устройства центрального офиса, которое
поддерживают несколько сотен цифровых абонентских линий.
Мультиплексоры посылают и получают абонентские данные по телефонным линиям, концентрируя весь трафик в одном высокоскоростном канале для передачи в Internet или в сеть компании.
Межсетевые экраны (firewall, брандмауэры) - это сетевые устройства, реализующие контроль за поступающей в локальную сеть
и выходящей из нее информацией и обеспечивающие защиту локальной сети посредством фильтрации информации. Большинство
межсетевых экранов построено на классических моделях разграничения доступа, согласно которым субъекту (пользователю, программе, процессу или сетевому пакету) разрешается или запрещается доступ к какому-либо объекту (файлу или узлу сети) при предъявлении некоторого уникального, присущего только этому субъекту, элемента. В большинстве случаев этим элементом является пароль. В других случаях таким уникальным элементом является
микропроцессорные карточки, биометрические характеристики
пользователя и т. п. Для сетевого пакета таким элементом являются
адреса или флаги, находящиеся в заголовке пакета, а также некоторые другие параметры. Таким образом, межсетевой экран - это программный и/или аппаратный барьер между двумя сетями, позволяющий устанавливать только авторизованные межсетевые соединения. Обычно межсетевые экраны защищают соединяемую с
Internet корпоративную сеть от проникновения извне и исключает
возможность доступа к конфиденциальной информации.
37
1.8. Социальная информатика
Информационный кризис начала 70-х годов ХХ века: предпосылки, содержание, симптомы в социальной практике, последствия.
Информационный кризис начала 70-х годов ХХ века проявился в снижении эффективности информационного обмена:
резко возрос объем публикуемых данных;
между группами разных специалистов стало трудно общаться;
возрос объем неопубликованной информации;
выросла проблема межязыкового обмена в мире.
Парадокс социальной коммуникации в условиях информационного
кризиса - явление информационного ―тромбоза‖, т.е. информационного
―взрыва‖ (лавинообразного роста объемов социоинформации), сопровождающегося информационным ―голодом‖ (физиологическими ограничениями
человека в восприятии и переработке информации и трудностями в выделении нужной информации из общего потока).
Существенным шагом на пути разрешения информационного кризиса
стало создание в 1971 микропроцессора.
Таким образом, самой актуальной и острой в мире является проблема
создания, сохранения и эффективного использования информационных ресурсов (ИР). Произошло формирование еще одного самостоятельного вида
общественного ресурса - информационного, позволяющего экономить большинство других ресурсов общества. Дальнейший прогресс общества в значительной степени связан сегодня с совершенствованием информационной инфраструктуры, эффективностью формирования, размещения и использования
информационных ресурсов и продуктов.
Информационный ресурс общества
Понятие ―информационного ресурса общества‖ (ИРО) является одним
из ключевых понятий социальной информатики. Широкое использование
этого понятия началось после выхода в 1984 году книги Громова Г.Р. ―Национальные информационные ресурсы: проблемы промышленной эксплуатации‖. Создание на рубеже 80-х годов принципиально нового понятия - национальные информационные ресурсы - было обусловлено растущей зависимостью промышленно развитых стран от источников информации (технической, экономической, политической, военной), а также от уровня развития и
эффективности использования средств передачи и переработки информации.
Понятие ИР находится в стадии формирования, трудность его однозначного
определения связана с неоднозначностью и сложностью таких понятий как
―знания‖, ―информация‖, ―данные‖ и т.д.
ИРО могут быть определены как накопленные в обществе знания, подготовленные для целесообразного социального использования [1].
38
Представим схему создания и развития ИРО :
Живое знание
Информацион.
ресурс о-ва
отчуждение
знаний
Информацион.
потенциал о-ва
активизация
информационных
ресурсов
Информационная безопасность
Безопасность информации (данных) — состояние защищенности информации (данных), при котором обеспечены еѐ (их) конфиденциальность,
доступность и целостность.
Информационная безопасность — защита конфиденциальности, целостности и доступности информации.
1. Конфиденциальность: обеспечение доступа к информации только
авторизованным пользователям.
2. Целостность: обеспечение достоверности и полноты информации и
методов еѐ обработки.
3. Доступность: обеспечение доступа к информации и связанным с ней
активам авторизованных пользователей по мере необходимости.
Информационная безопасность (англ. information security) — все аспекты, связанные с определением, достижением и поддержанием конфиденциальности, целостности, доступности, неотказуемости, подотчетности, аутентичности и достоверности информации или средств еѐ обработки.
Безопасность информации (данных) (англ. information (data)
security) — состояние защищенности информации (данных), при котором
обеспечиваются еѐ (их) конфиденциальность, доступность и целостность.
Безопасность информации (данных) определяется отсутствием недопустимого риска, связанного с утечкой информации по техническим каналам,
несанкционированными и непреднамеренными воздействиями на данные и
(или) на другие ресурсы автоматизированной информационной системы, используемые при применении информационной технологии.
Безопасность информации (при применении информационных
технологий) (англ. IT security) — состояние защищенности информационной
технологии, обеспечивающее безопасность информации, для обработки которой она применяется, и информационную безопасность автоматизированной информационной системы, в которой она реализована.
Безопасность автоматизированной информационной системы —
состояние защищенности автоматизированной информационной системы,
при котором обеспечиваются конфиденциальность, доступность, целостность, подотчетность и подлинность еѐ ресурсов.
39
Информационная безопасность - защищенность информации и
поддерживающей инфраструктуры от случайных или преднамеренных
воздействий естественного или искусственного характера, которые могут нанести неприемлемый ущерб субъектам информационных отношений.
Поддерживающая инфраструктура - системы электро-, тепло-, водо-,
газоснабжения, системы кондиционирования и т.д., а также обслуживающий
персонал. Неприемлемый ущерб - ущерб, которым нельзя пренебречь.
Системный подход к описанию информационной безопасности предлагает
выделить следующие составляющие информационной безопасности:
1. Законодательная, нормативно-правовая и научная база.
2. Структура и задачи органов (подразделений), обеспечивающих
безопасность ИТ.
3. Организационно-технические и режимные меры и методы (Политика информационной безопасности).
4. Программно-технические способы и средства обеспечения информационной безопасности.
Целью реализации информационной безопасности какого-либо объекта
является построение Системы обеспечения информационной безопасности
данного объекта (СОИБ). Для построения и эффективной эксплуатации СОИБ необходимо:
выявить требования защиты информации, специфические для данного объекта защиты;
учесть требования национального и международного Законодательства;
использовать наработанные практики (стандарты, методологии) построения подобных СОИБ;
определить подразделения, ответственные за реализацию и поддержку СОИБ;
распределить между подразделениями области ответственности в
осуществлении требований СОИБ;
на базе управления рисками информационной безопасности определить общие положения, технические и организационные требования,
составляющие Политику информационной безопасности объекта
защиты;
реализовать требования Политики информационной безопасности,
внедрив соответствующие программно-технические способы и
средства защиты информации;
реализовать Систему менеджмента (управления) информационной
безопасности (СМИБ);
используя СМИБ организовать регулярный контроль эффективности
СОИБ и при необходимости пересмотр и корректировку СОИБ и
СМИБ.
40
Как видно из последнего этапа работ, процесс реализации СОИБ непрерывный и циклично (после каждого пересмотра) возвращается к первому
этапу, повторяя последовательно всѐ остальные. Так СОИБ корректируется
для эффективного выполнения своих задач защиты информации и соответствия новым требованиям постоянно обновляющейся информационной системы.
Нормативные документы в области информационной безопасности
В Российской Федерации к нормативно-правовым актам в области информационной безопасности относятся:
Акты федерального законодательства:
o Международные договоры РФ;
o Конституция РФ;
o Законы федерального уровня (включая федеральные конституционные законы, кодексы);
o Указы Президента РФ;
o Постановления правительства РФ;
o Нормативные правовые акты федеральных министерств и ведомств;
o Нормативные правовые акты субъектов РФ, органов местного
самоуправления и т. д.
Подробнее списки и содержание указанных нормативных документов в
области информационной безопасности обсуждаются в разделе Информационное право.
К нормативно-методическим документам можно отнести
Методические документы государственных органов России:
o Доктрина информационной безопасности РФ;
o Руководящие документы ФСТЭК (Гостехкомиссии России);
o Приказы ФСБ;
Стандарты информационной безопасности, из которых выделяют:
o Международные стандарты;
o Государственные (национальные) стандарты РФ;
o Рекомендации по стандартизации;
o Методические указания.
Органы (подразделения), обеспечивающие информационную безопасность
В зависимости от приложения деятельности в области защиты информации (в рамках государственных органов власти или коммерческих организаций), сама деятельность организуется специальными государственными органами (подразделениями), либо отделами (службами) предприятия.
Государственные органы РФ, контролирующие деятельность в области
защиты информации:
Комитет Государственной думы по безопасности;
41
Совет безопасности России;
Федеральная служба по техническому и экспортному контролю
(ФСТЭК);
Федеральная служба безопасности Российской Федерации (ФСБ
России);
Министерство внутренних дел Российской Федерации (МВД России);
Федеральная служба по надзору в сфере связи, информационных
технологий и массовых коммуникаций (Роскомнадзор).
Службы, организующие защиту информации на уровне предприятия
Служба экономической безопасности;
Служба безопасности персонала (Режимный отдел);
Отдел кадров;
Служба информационной безопасности.
42
2. Информационные и коммуникационные технологии
2.1. Технология работы в ОС Windows
Операционная система – это комплекс программ, обеспечивающих
управление работой компьютера и его взаимодействие с пользователем.
С точки зрения человека операционная система служит посредником
между человеком, электронными компонентами компьютера и прикладными
программами. Она позволяет человеку запускать программы, передавать им
и получать от них всевозможные данные, управлять работой программ, изменять параметры компьютера и подсоединѐнных к нему устройств, перераспределять ресурсы. Работа на компьютере фактически является работой с
его операционной системой. При установке на компьютер только операционной системы (ОС) ничего содержательного на компьютере также сделать не
удастся. Для ввода и оформления текстов, рисования графиков, расчѐта зарплаты или прослушивания лазерного диска нужны специальные прикладные
программы. Но и без ОС ни одну прикладную программу запустить невозможно.
Операционная система решает задачи, которые можно условно разделить на две категории:
во-первых, управление всеми ресурсами компьютера;
во-вторых, обмен данными между устройствами компьютера, между
компьютером и человеком.
Кроме того, именно ОС обеспечивает возможность индивидуальной
настройки компьютера: ОС определяет, из каких компонентов собран компьютер, на котором она установлена, и настраивает сама себя для работы
именно с этими компонентами.
Ещѐ не так давно работы по настройке приходилось выполнять пользователю вручную, а сегодня производители компонентов компьютерной техники разработали протокол plug-and-play (включил - заработало). Этот протокол позволяет операционной системе в момент подключения нового компонента получить информацию о новом устройстве, достаточную для настройки ОС на работу с ним.
Операционные системы для ПК различаются по нескольким параметрам. В частности, ОС бывают:
однозадачные и многозадачные;
однопользовательские и многопользовательские;
сетевые и несетевые.
Кроме того, операционная система может иметь командный или графический многооконный интерфейс (или оба сразу).
43
Однозадачные операционные системы позволяют в каждый момент
времени решать только одну задачу. Такие системы обычно позволяют запустить одну программу в основном режиме.
Многозадачные системы позволяют запустить одновременно несколько программ, которые будут работать параллельно.
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской,
и не всякая однопользовательская ОС является однозадачной.
В последние годы фактическим стандартом стал графический многооконный интерфейс, где требуемые действия и описания объектов не вводятся в виде текста, а выбираются из меню, списков файлов и т.д.
В настоящее время, с появлением мощных компьютеров, широкое распространение получили два типа ОС. К первому типу относятся достаточно
похожие ОС семейства Windows компании Microsoft. Они многозадачные и
имеют многооконный графический интерфейс. На рынке персональных компьютеров с Windows конкурируют ОС типа UNIX. Это многозадачная многопользовательская ОС с командным интерфейсом. В настоящее время разработаны расширения UNIX, обеспечивающие многооконный графический
интерфейс. UNIX развивалась в течение многих лет разными компаниями, но
до недавнего времени она не использовалась на персональных компьютерах,
т.к. требует очень мощного процессора, весьма дорога и сложна, еѐ установка
и эксплуатация требуют высокой квалификации. В последние годы ситуация
изменилась. Компьютеры стали достаточно мощными, появилась некоммерческая, бесплатная версия системы UNIX для персональных компьютеров система Linux. По мере роста популярности этой системы в ней появились
дополнительные компоненты, облегчающие еѐ установку и эксплуатацию.
Немалую роль в росте популярности Linux сыграла мировая компьютерная
сеть Internet. Хотя освоение Linux гораздо сложнее освоения систем типа
Windows, Linux - более гибкая и в то же время бесплатная система, что и
привлекает к ней многих пользователей.
Существуют и другие ОС. Известная компания Apple производит компьютеры Macintosh с современной ОС MacOS. Эти компьютеры используются преимущественно издателями и художниками. Фирма IBM производит ОС
OS/2. Операционная система OS/2 такого же класса надѐжности и защиты,
как и Windows NT.
Операционная система Windows
На смену операционной системе MS DOS с ее графическими оболочками Windows 3.1 и Windows 3.11 пришли полноценные операционные системы семейства Windows (сначала Windows 95, затем Windows 98, Windows
Millennium, Windows 2000, Windows XP, Windows Vista и Windows 7). На ри44
сунке показаны этапы развития персональных компьютеров класса РС и операционной системы Windows:
Операционные системы семейства Windows представляет собой 32разрядные операционные системы, обеспечивающую многозадачную и многопоточную обработку приложений. Они поддерживает удобный графический пользовательский интерфейс, возможность работы в защищенном режиме, совместимость с программами реального режима и сетевые возможности. В Windows реализована технология поддержки самонастраивающейся
аппаратуры Plug and Play, допускаются длинные имена файлов и обеспечиваются повышенные характеристики устойчивости.
45
32-разрядность означает, что операции над 32-разрядными данными
здесь выполняются быстрее, чем над 16-разрядными. 32-разрядные Windowsприложения выполняются в собственном адресном пространстве, доступ в
которое для других программ закрыт. Это защищает приложения от ошибок
друг друга. При сбое в работе одного приложения другое продолжает нормально функционировать. Сбойное же приложение можно завершить.
Многозадачность предоставляет возможность параллельной работы с
несколькими приложениями. Пока одно из них занимается, например, печатью документа на принтере или приемом электронной почты из сети Internet,
другое может пересчитывать электронную таблицу или выполнять другую
полезную работу.
Многопоточность позволяет определенным образом разработанным
приложениям одновременно выполнять несколько своих собственных процессов. Например, работая с многопоточной электронной таблицей, пользователь сможет делать перерасчет в одной таблице в то время, как будет выполняться печать другой и загрузка в память третьей. Пока один поток находится в состоянии ожидания, например, завершения операции обмена данными с медленным периферийным устройством, другой может продолжать
выполнять свою работу.
Отличительной чертой Windows является объектно-ориентированный
подход к построению системы. На уровне пользователя объектный подход
выражается в том, что интерфейс представляет собой подобие реального мира, а работа с машиной сводится к действиям с привычными объектами. Так,
папки можно открыть, убрать в портфель, документы – просмотреть, исправить, переложить с одного места на другое, выбросить в корзину, факс или
письмо – отправить адресату и т. д. Пользователь работает с задачами и приложениями так же, как с документами на своем письменном столе. Обьектноориентированный подход реализуется через модель рабочего стола – первичного объекта Windows. После загрузки Windows он выводится на экран.
На рабочем столе могут быть расположены различные объекты: программы,
папки с документами (текстами, рисунками, таблицами), ярлыки программ
или папок.
Ярлыки обеспечивают доступ к программе или документу из различных мест, не создавая при этом нескольких физических копий файла. На рабочий стол можно поместить не только пиктограммы приложений и отдельных документов, но и папок. Папки - еще одно название каталогов.
Существенным нововведением в Windows стала панель задач. Несмотря на небольшие функциональные возможности, она делает наглядным
механизм многозадачности и намного ускоряет процесс переключения между
приложениями. Внешне панель задач представляет собой полосу, обычно
располагающуюся в нижней части экрана, на которой размещены кнопки
приложений и кнопка ―Пуск‖. В правой ее части обычно присутствуют часы
и небольшие пиктограммы программ, активных в данный момент.
46
Windows обеспечивает работу с аудио и видеофайлами различных
форматов. Значительным достижением Windows стали встроенные в систему
программы для компьютерных коммуникаций. Коммуникационные средства
Windows рассчитаны на обычных пользователей и не требуют специальных
знаний. Эти средства включают в себя возможности работы в локальных сетях и глобальных сетях, настройку модемов, подключение к электронной
почте и многое другое.
В операционной системе Windows при работе с окнами и приложениями широко применяется манипулятор мышь. Обычно мышь используется для
выделения фрагментов текста или графических объектов, установки и снятия
флажков, выбора команд меню, кнопок панелей инструментов, манипулирования элементами управления в диалогах, "прокручивания" документов в окнах.
В Windows активно используется и правая кнопка мыши. Поместив
указатель над интересующем объекте и сделав щелчок правой кнопкой мыши, можно раскрыть контекстное меню, содержащее наиболее употребительные команды, применимые к данному объекту.
При завершении работы нельзя просто выключить компьютер, не завершив работу системы по всем правилам - это может привести к потере некоторых несохраненных данных. Для правильного завершения работы необходимо сохранить данные во всех приложениях, с которыми работал пользователь, завершить работу всех ранее запущенных DOS-приложений, открыть
меню кнопки ―Пуск‖ и выбрать команду ―Завершение работы‖.
2.2. Технология обработки текстовой информации
Функции текстовых редакторов
Инструментальные программы для подготовки текстов программ, документов, описаний называются текстовыми редакторами (text-editor),
мощные текстовые редакторы с расширенным спектром функций называют
также текстовыми процессорами (word-processor). Некоторые текстовые
процессоры могут работать не только с текстами, но и с изображениями, например редактировать иллюстрированные документы.
Основные функции текстовых редакторов и процессоров:
работа с файлами — сохранение текста на магнитном диске в виде
файла, считывание текста (файла) с диска, копирование в редактируемый текст любого количества строк из другого файла, имеющегося на диске. Для надежности редактируемый файл должен периодически записываться на диск по команде пользователя или автоматически;
показ текста на экране — текст или его фрагмент можно показывать
в специальном окне объемом 15 — 25 строк, организованном на экране монитора. Текст на экране можно передвигать вверх-вниз, влево-вправо с помощью клавиш, помеченных стрелками, а также быстро заменять фрагмент текста на другой фрагмент по номеру стро47
ки. Некоторые редакторы позволяют организовывать на экране несколько окон с различными файлами или с различными частями одного файла;
вывод на печать (если в составе компьютера имеется принтер).
Обычно в редакторы, работающие со многими шрифтами и алфавитами, встроена функция вывода на печать, хотя некоторые простые
редакторы сами на печать не выводят и требуется сначала записать
текст на магнитный диск, выйти из редактора и вывести файл на печать средствами операционной системы;
вставка символов и строк в места, указанные курсором. При этом
текст раздвигается;
перемещение части текста, помеченного соответствующим образом
(обычно помечаются начало и конец фрагмента), на другое место,
указанное курсором, или дублирование части текста в другом месте;
удаление символов и строк, указанных курсором и помеченных соответствующим образом. При этом текст сжимается. Обычно редакторы позволяют также восстанавливать ошибочно удаленные фрагменты текста;
контекстный поиск — поиск строки по заданному фрагменту текста;
выравнивание ширины — выравниваются правый край, левый край
или «по центру строки» путем вставки дополнительных пробелов.
Переносы слов при этом не делаются;
перенос слов. Простейшие редакторы не используют перенос слов и
если слово не помещается в строке, то оно целиком переносится на
следующую строку. Более мощные редакторы, «понимающие»
грамматику языка текста, могут выполнять переносы слов. Это
удобно при подготовке текста к типографской печати. Некоторые
редакторы можно «обучать» переносу слов;
резка и склейка строк. Можно отделить часть строки и перенести в
следующую строку и, наоборот, строку «подклеить» к предыдущей
строке;
замена одного фрагмента на другой. Можно произвести замену одного фрагмента на другой, например имя «Pascal» заменить во всем
тексте на «Basic», автоматически или полуавтоматически (с контролем); можно заменить прописные буквы на строчные, один год на
другой и т.п.;
вставка заготовок. Можно вставлять заранее заготовленные фрагменты (имена, служебные слова языков программирования) в предварительно помеченные места текста;
орфографический и синтаксический контроль текста с указанием
цветом или подчеркиванием мест ошибок или непонятных редактору слов и выражений. «Обучаемые» редакторы можно научить понимать эти слова и выражения в дальнейшем.
48
Сравнительные характеристики
Текстовые редакторы разделяются на три группы:
1. редакторы общего назначения (сюда относятся, например, редакторы «Лексикон», MS Word, WordPerfect и др.);
2. редакторы научных текстов (ChiWriter, ТеХ и др.);
3. редакторы исходных текстов программ (например, Multi-Edit или
встроенные редакторы систем программирования для языков Бейсик, Фортран, Си и др.).
По сравнению с редакторами общего назначения специализированные
редакторы позволяют легче готовить и редактировать соответствующие тексты: например, редакторы научных текстов удобнее для набора математических или химических формул.
Многооконный редактор «Лексикон» — один из простейших текстовых
редакторов отечественной разработки для несложных документов на русском
или английском языке, имеющий ряд версий, одна из последних версий —
«Лексикон 97». Ранее редактор «Лексикон» работал в MS DOS, последние
версии редактора предназначены для ОС Windows. Имеются так называемый
«базовый вариант» редактора и более мощный профессиональный вариант
для работы с пакетом MS Office в ОС Windows 95, 98, NT. «Лексикон» позволяет открыть на экране монитора до десяти окон, в каждом из которых может
редактироваться свой документ.
В редакторе «Лексикон» предусмотрены следующие возможности:
просмотр и исправление текста;
автоматическое форматирование абзацев;
автоматическое разбиение текста на страницы;
перемещение, выделение, удаление, вставка фрагментов текста;
создание оглавлений;
использование подчеркиваний, курсива, полужирного шрифта;
одновременное редактирование нескольких документов и обмен материалами между окнами;
работа в графическом режиме;
печать текста на принтерах разных типов;
печать верхних и нижних индексов, греческих букв, математических
символов;
просмотр на экране вида напечатанного материала до печати;
набор текста в несколько колонок;
автоматическое сохранение редактируемого документа через несколько строк (страниц);
проверка орфографии;
контекстный поиск.
В последнее время редактор «Лексикон» быстро вытесняется более
мощными (но и более сложными) редакторами.
49
Текстовый редактор MS DOS Editor может применяться только для редактирования текстов файлов канонического формата, состоящих лишь из
букв и цифр и не имеющих изображений. Редактор может вызываться из MS
DOS и Windows и по своим возможностям близок к «Лексикону», но имеет
более удобный интерфейс.
Текстовый редактор Windows 95 NotePad («Блокнот») — простейший
редактор, входящий в Windows 95. Имеет ограниченные возможности, но
очень простой для изучения и использования. Среди других средств редактирования, используемых в ОС Windows, отметим текстовые процессоры Word
Pad, Word 6.0, Word 95 (Word 7.0), Word 97 (Word 8.0), Word 2000 (Word 9.0).
Многооконные процессоры Word 95, 97, предназначенные для ввода, редактирования и форматирования текстов, могут работать одновременно с несколькими документами, каждый из которых отображается в своем окне.
Можно менять размеры окон, а также вид и начертание шрифтов, оформлять
текст в несколько столбцов, выполнять многие другие операции.
Многооконный текстовый процессор MS Word 2002 (последняя версия
редактора MS Word) — один из самых совершенных, входит в пакет MS Office 2002 и имеет сотни операций над текстовой и графической информацией.
Как и ОС Windows, построен по оконной технологии с использованием ниспадающих меню и пиктограмм. Обладает универсальностью, позволяет достаточно быстро и с высоким качеством готовить практически любые документы: от деловой записки или письма до макета книги. Имеет множество
технологических приемов редактирования текстово-графической информации, широкий набор шрифтов разной формы и размера, проверку орфографии и грамматики, автоматический перенос слов. Можно делать ссылки в
тексте (это позволяют не все редакторы), работать с готовыми шаблонами
документов, отключать часть средств или модифицировать используемые
средства для ускорения работы. В текст можно включать рисунки, которые
можно редактировать, изменяя масштаб, форму, качество изображения; формировать «обтекание» рисунка текстом, использовать рисунок в качестве фона. Позволяет вставлять в текст таблицы различного размера и сложности,
поворачивать текст на странице, вставлять номера страниц и многое другое.
Благодаря этим возможностям с помощью редактора Word может выполняться верстка документов, как это делается в типографиях. Имеются средства, облегчающие подготовку документов для сети Internet.
Усовершенствованием рассмотренных выше редакторов Word является
более удобный в работе текстовый процессор WordPerfect, имеющий ряд
версий (одна из последних версий — WordPerfect 9). Редактор контролирует
правописание, вычерчивает отрезки линий, оформляет рамки, формирует
ссылки, оглавления, указатели, имеет много других возможностей.
Универсальность процессоров Word сопряжена, однако, и с некоторыми недостатками, к которым относятся трудности освоения и относительно
низкая производительность при редактировании простых текстов. Поэтому
для подготовки простых однородных текстов иногда целесообразно сначала
50
воспользоваться несложными редакторами типа MS DOS Editor или «Лексикон», затем отформатировать полученный текст для Word и уже с помощью
Word улучшить его в изобразительном отношении. При наличии в тексте
большого количества сложных математических или химических формул более производительным может быть, например, редактор ChiWriter. Наконец,
редакторы Word не подходят для подготовки такой сложной полиграфической продукции, как атласы, высококачественные рисунки (копии фотографий), иллюстрированные альбомы.
2.3. Технология обработки графической информации
Типы и характеристики компьютерной графики
Современные компьютеры все шире применяются для построения изображений (рисунков), используемых в научных исследованиях; для наглядного представления результатов; в конструкторских разработках, тренажерах, компьютерных играх; в инженерном, издательском, рекламном деле и
других областях. Компьютерная графика служит основой анимации, под которой понимается изменение вида, формы, размеров, расположения объектов
на экране, создающее эффект мультипликации. Различают три основных типа компьютерной графики: растровая, векторная и фрактальная. Обычно особо выделяют еще трехмерную (3D — three-dimensional) графику как средство
построения объемных изображений. По цветности различают черно-белую и
цветную компьютерную графику, а по областям применения — инженерную,
научную, деловую, игровую (развлекательную) компьютерную графику,
компьютерную полиграфию и другие типы.
В растровой графике изображение строится как множество точек, так
называемых пикселей. Пиксель (сокращение от слов picture cell — элемент
изображения) представляет собой единицу измерения разрешения экрана
(монитора) или печатного изображения и соответствует отдельной светящейся точке, цветом и яркостью которой можно управлять. Растр экрана монитора с диагональю 20 — 21" может содержать от 0,3 до 3 млн. пикселей. Поскольку изображение может быть цветным, для кодирования одного пикселя
может потребоваться до трех байт информации. На весь экран, следовательно, может потребоваться от 1 до 10 Мбайт, т.е. весьма значительный объем,
но изображение, тем не менее, может быть довольно грубым. Качество изображений принято оценивать по числу пикселей на 1" длины. Единицу такого измерения называют dpi — dots per inch. Для газетных иллюстраций достаточно около 70 dpi, для полноцветной полиграфической печати 200-300 dpi,
для фотоэкспонирующих устройств профессионального класса 2500 dpi, тогда как экран монитора обычно обеспечивает лишь несколько десятков (например,70) dpi и расстояние между соседними точками около 0,25 мм, что
недостаточно для получения изображений высокого качества.
При растрировании изображения на него как бы накладывается сетка
линий, разбивающая его на квадратные ячейки. Число линий на дюйм Lpi
51
(Lpi — lines per inch) называется линиатурой. Для лазерных принтеров рекомендуемая линиатура составляет 65 — 100, для газет 65 — 85, для книг и
журналов 85 — 133, для художественных и рекламных работ 133 — 300. Интенсивность тона — светлота, определяется числом точек (пикселов) в
ячейке растра. Для человеческого глаза рекомендуется 256 уровней тона, т.е.
в ячейке должно помещаться до 16 × 16 = 256 пикселей. Для изменения
уровня тона можно также изменять размеры пикселей; максимальный размер
пикселя равен, очевидно, размеру ячейки растра.
Растровая графика позволяет строить изображения очень высокого качества, но, как видно из приведенных оценок, для этого требуется очень
большой объем компьютерной памяти (например, для журнальной иллюстрации — до 130 Мбайт и более). Помимо больших запросов на память, недостатком растровой графики являются трудности увеличения изображения
для анализа его деталей. Поскольку при увеличении объем запасенной информации сохраняется, то без принятия специальных мер увеличение изображения приводит лишь к пикселизации — укрупнению отдельных пикселей
с сохранением их численности. Изображение становится все более «зернистым» (фотографический термин), грубым, искаженным. Сглаживание пикселизации представляет собой самостоятельную проблему.
Если основным элементом растровой графики является точка, то в векторной графике основным элементом является линия (прямая или кривая).
Объем памяти, требуемый для хранения линии, не зависит от ее длины, так
как в памяти компьютера линия представляется формулой с несколькими параметрами, а не точками. Обычно ограничиваются линиями не выше третьего
порядка, для построения которых достаточно иметь не более девяти коэффициентов и абсциссы двух концевых точек. При изменении размера линии меняются лишь параметры, а объем памяти сохраняется. Линии имеют свойства: форму, цвет, толщину, тип (сплошные, штриховые, пунктирные и т.п.).
Для сохранения одной линии достаточно 20 — 30 байт оперативной памяти.
Замкнутые линии имеют свойство заполнения. Заполнение описанного линией контура может быть выполнено цветом (несколькими цветами) или текстурой (узором). Концы линии — узлы, которые также обладают свойствами,
например, могут быть точками, кружками, квадратиками, различными фигурками. На экран линия по-прежнему выводится точками (таковы особенности монитора), но координаты этих точек вычисляются, а не хранятся в памяти компьютера.
Линия — элементарный, простейший объект векторной графики. Простейшие объекты могут объединяться в более сложные, например, плоские и
объемные фигуры. Типичные объекты сохраняются в памяти компьютера.
Векторная графика позволяет легко увеличивать изображение или его фрагменты, например план дома или квартиры, чертеж механизма или схемы с
сохранением их качеств: можно поворачивать изображения, совмещать их,
изменять угол зрения, совершать другие манипуляции. При этом используются некоторые математические основы векторной графики. Даже достаточ52
но сложные композиции, содержащие тысячи объектов, расходуют лишь десятки и сотни Кбайт памяти. Векторная графика мало пригодна для создания
художественных изображений и обычно применяется в оформительских,
чертежных, проектно-конструкторских работах, системах автоматизированного проектирования (например, архитектурного проектирования) и аналогичных приложениях.
Фрактальная графика, как и векторная, также вычисляемая, но в памяти компьютера не сохраняются никакие объекты, кроме их формул. Изображение строится согласно уравнению или системе уравнений. Меняя коэффициенты (параметры) уравнений, можно получить другое изображение. Характерная особенность фрактальной графики — наследование свойств. Например, фрактальный треугольник (точнее, его формулы) — простейший
фрактальный объект. Можно построить треугольник другого размера с сохранением свойств исходного (например, равносторонний треугольник). Таким путем можно строить изображения необычного вида: декоративные узоры, орнаменты, имеющие очертания снежинок, кристаллов, листьев, сложных геометрических фигур.
Трехмерная графика широко применяется в таких областях, как научные расчеты, инженерное проектирование, моделирование физических процессов и технических объектов, а также в обучающих системах и «индустрии
развлечений (игр)». Для создания модели трехмерного объекта используются
геометрические примитивы (куб, параллелепипед, шар, эллипсоид, конус и
др.) и гладкие поверхности, описываемые кусочно-гладкими бикубическими
полиномами. Вид поверхности задается сеткой расположенных в пространстве опорных точек. Участки поверхности между опорными точками — границы объекта, которые обладают различными свойствами и могут быть гладкими, шероховатыми, прозрачными, непрозрачными, зеркальными и т.п. В
соответствии с этими свойствами поверхности закрашиваются тем или иным
способом. Движение объектов и анимация воспроизводятся движением геометрических примитивов и опорных точек по заданным законам. Для построения трехмерных изображений и анимации используется достаточно
сложное алгоритмическое и программное обеспечение.
Цветность изображения характеризуется цветовой моделью и цветовым
разрешением. Под цветовой моделью понимают способ разделения цвета на
основные компоненты. В наиболее простой цветовой модели, используемой в
мониторах и цветных телевизорах, любой цвет считается состоящим из трех
основных компонентов: красного, зеленого и синего цветов, смешанных в
определенной пропорции. Совмещение трех основных компонентов в равной
пропорции дает белый цвет. В такой модели цвет ячейки растра можно изобразить вектором, исходящим из начала координат в пространстве трех основных цветов. При этом проекции вектора дают относительный вклад основных цветов, а его модуль — интенсивность цвета. К трем основным цветам обычно добавляют для удобства еще черный цвет (цвет экрана). Имеются
и другие цветовые модели.
53
Под цветовым разрешением, или глубиной цвета, понимается метод
кодирования цветовой информации. И от него зависит, сколько цветов на экране может воспроизводиться одновременно. Таблица данных, в которой
хранится информация о том, каким кодом закодирован тот или иной цвет,
именуется цветовой палитрой. Если на кодирование цвета отводится 1 бит
информации, изображение будет двухцветным (черно-белым); один байт информации позволяет закодировать 256 цветов, два байта — 65536 цветов
(режим High Color), три байта — около 16,5 млн цветов (режим True Color). В
последнем случае для кодирования каждого из трех основных цветов отводится один байт информации. При работе во всемирной сети Internet используется так называемая безопасная палитра, содержащая всего 216 цветов и
жестко задающая их коды, а поэтому пригодная для любых компьютеров,
подключенных к сети, в том числе не совместимых с IBM PC.
Программное обеспечение компьютерной графики
Программные средства работы с компьютерной графикой называют
графическими редакторами (graphics editor). Существуют два типа графических редакторов:
1. редакторы для создания новых изображений;
2. редакторы для улучшения уже готовых изображений, полученных с помощью сканера, видеокамеры, цифрового фотоаппарата
и других средств.
Рассмотрим сначала графические редакторы для работы с растровой
графикой. Существует несколько десятков форматов, в которых сохраняются
растровые изображения. Универсальным при работе с ОС Windows считается
формат без сжатия информации Windows Bitmap, имеющий расширение
.bmp. Для Web-документов в сети Internet более удобны форматы, обеспечивающие сжатие информации с целью сокращения объема файлов. Одним из
таких форматов является формат JPEG (расширение .jpg), сохраняющий данные с огромной степенью сжатия, но за счет потери некоторой, относительно
небольшой части информации. Также используемый в Internet формат GIF
(расширение .gif) обеспечивает наивысшее уплотнение без потери информации. В полиграфии распространенным является специальный формат TIFF
(расширение .tif), дающий неплохую степень сжатия и открывающий некоторые дополнительные возможности при печати изображений.
Из графических редакторов первого типа для растровых изображений
очень популярен и относительно прост однооконный (на экране монитора
открывается единственное окно) редактор Paint, входящий в программное
обеспечение Windows 95. Редактор Paint представляет собой OLE-сервер, и
созданные в нем изображения можно вставлять в документы таких универсальных приложений Windows, как MS Word, MS Excel, MS PowerPoint и даже в базы данных MS Access. Для создания и редактирования изображений
Paint представляет богатый набор инструментов (палитры цветов, кисть, распылитель, ластики для стирания, «карандаши», ножницы для вырезания
54
фрагментов) и средств работы с этими инструментами. Paint позволяет создавать довольно сложные черно-белые или цветные рисунки, схемы, чертежи,
хотя и не обладающие высокими художественными или инженернотехническими качествами. В силу своей простоты и доступности Paint часто
используется в качестве первой ступени при обучении и при овладении более
сложными средствами компьютерной графики.
К редакторам первого типа относятся также Painter компании Fractal
Design, Free Hand компании Macromedia и Fauve Matisse. Редактор Painter обладает широкими возможностями средств рисования и работы с цветом, позволяя, в частности, имитировать различные инструменты (кисти, карандаши,
перо, уголь) и материалы (акварель, масло, тушь). Последние версии редактора Free Hand также содержат разнообразные средства редактирования изображений и текста, включая многоцветную градиентную заливку, библиотеку
спецэффектов и др.
К графическим редакторам второго типа относятся, например, редакторы Adobe Photoshop, Photostyler, Picture Publisher, из них наиболее популярны
редакторы Adobe Photoshop фирмы Adobe, фактически считающиеся стандартом в этой области. Из множества средств обработки готовых изображений отметим такие средства, как улучшение яркости и контраста, повышение
четкости, цветовая коррекция (изменение яркости и контрастности в различных цветовых каналах), отмывка (изменение яркости фрагментов), обтравка
(вырезание отдельных фрагментов и их последующее улучшение с возвратом, «вклеиванием», на прежнее место), набивка (восстановление утраченных элементов изображения путем копирования сохранившихся фрагментов), растушевка (сглаживание границ), монтаж (компоновка изображения
из фрагментов одного или нескольких изображений). Интересным средством
обработки изображений являются фильтры — программные средства преобразования изображений с целью улучшения их качества или художественной
выразительности. С помощью фильтров можно повысить четкость изображения, придать фотографии вид карандашного или угольного рисунка, барельефа, гравюры, мозаики; выполнить стилизацию изображения, например имитировать изображение на ткани, бумаге, металле и других основах.
При выполнении этих преобразований графические редакторы предоставляют пользователю специальные инструментальные палитры в виде диалоговых окон с различными панелями (наборами) инструментов, указанных
пиктограммами. Так в редакторе Adobe Photoshop 4.0 имеется 10 таких палитр. Основное отличие палитр от обычных диалоговых окон ОС Windows —
возможность перекомпоновки рабочей среды пользователем путем перемещения палитр на экране и монтирования новых палитр.
Рассмотрим теперь графические редакторы, применяемые для работы с
векторной графикой, когда изображение — чертеж, схема, диаграмма, но не
рисунок. Наиболее известными из таких редакторов являются Adobe Illustrator 7.0 (по-видимому, самый лучший); Macromedia Freehand 8.0, имеющий
дружественный интерфейс и рекомендуемый для начинающих пользовате55
лей, и Corel Draw (версии от 5.0 до 8.0), исторически применяемый в компьютерах IBM PC, — очень богатый по своим возможностям и позволяющий
создавать изображения, подобные художественным, однако более сложный в
изучении и использовании и с менее удобным пользовательским интерфейсом, чем первые два редактора. В последнее время Corel Draw применяется
меньше, поскольку редакторы Adobe Illustrator и Macromedia Freehand стали
шире использоваться и в компьютерах IBM PC.
Элементами векторной графики в графических редакторах служат линии, контуры, объекты. Эти элементы можно группировать, комбинировать,
объединять, заливать различными способами, используя многочисленные
меню и инструменты, обычно кодируемые пиктограммами. Вместе с рисунками можно создавать и тексты, причем не только строчные, но и фигурные,
расположенные вдоль заданных кривых или в заданных контурах. Можно
также видоизменять символы и шрифты, создавая необычные надписи, обладающие художественной выразительностью, например логотипы (краткие
наименования) предприятий и фирменные стили для использования в объявлениях, рекламах, проспектах, а также для создания оригинальных электронных документов и Web-страниц в сети Internet. Отметим еще, что растровые
изображения можно преобразовывать в векторные, а затем дорабатывать,
улучшать с помощью редакторов векторной графики и, наоборот, векторные
изображения преобразовывать в растровые с целью последующего редактирования, улучшения с помощью, например, такого мощного средства, как
фильтры редактора Photoshop.
Одним из перспективных приложений средств компьютерной графики
становятся в последнее время настольные типографии (desktop publisher)
для печати малотиражных изданий, реклам, извещений, объявлений, листовок, а также настольные издательские системы, применяемые для оформления (верстки) документов, предназначенных для полиграфических изданий.
Наиболее известными из настольных издательских систем являются
QuarkXPress и PageMaker. Процесс верстки документа состоит в оформлении
текста и взаимного расположения текста и иллюстраций на основе оконной
технологии. Цель верстки — создание оригинал-макета, пригодного для последующего размножения документа полиграфическими средствами. Работа
с
настольными
издательскими
системами
является
объектноориентированной, объектами работы служат блоки текста, рисунки и стандартные элементы оформления (линии, рамки и т.п.), причем блоки текста и
рисунки могут быть подготовлены заранее с помощью текстовых и графических редакторов. Пользователю настольной издательской системы предоставляется набор действий, оформленных как меню, панель инструментов, панель размеров и панель макета документа. Для хранения наборов объектов,
созданных пользователями, имеются библиотеки, которые можно пополнять
в ходе работы. Из библиотек можно извлекать копии текстовых и графических объектов, используемых в верстке. Имеется также широкий набор
средств для работы с цветом.
56
В заключение отметим, что техника квалифицированной работы с компьютерной графикой и настольными издательскими системами требует
большого опыта ввиду многообразия имеющихся средств и манипуляций с
ними.
2.4. Технология обработки числовой информации
Электронные калькуляторы
Электронные калькуляторы являются специализированными программными приложениями, предназначенными для произведения вычислений. Электронные калькуляторы по своим функциональным возможностям
соответствуют аппаратным микрокалькуляторам.
Аппаратные микрокалькуляторы могут существенно различаться по
своим возможностям и областям применения. Простые микрокалькуляторы
позволяют осуществлять только арифметические операции над числами и
используются в быту. Инженерные микрокалькуляторы позволяют также вычислять значения различных функций (sin, cos и др.) и используются в процессе обучения и для инженерных расчетов; программистские микрокалькуляторы позволяют проводить вычисления в различных системах счисления и
другие операции.
Электронные калькуляторы гораздо удобнее, так как могут обладать
возможностями всех вышеперечисленных типов аппаратных микрокалькуляторов. Электронный Калькулятор является стандартным приложением операционной системы Windows. Также кроме стандартной программы Калькулятор существует не мало других удобных калькуляторов.
Электронные таблицы
Электронная таблица — это программа обработки числовых данных,
хранящая и обрабатывающая данные в прямоугольных таблицах.
Электронная таблица состоит из столбцов и строк. Заголовки столбцов
обозначаются буквами или сочетаниями букв (A, G, АВ и т. п.), заголовки
строк — числами (1, 16, 278 и т. п.). Ячейка — место пересечения столбца и
строки.
Каждая ячейка таблицы имеет свой собственный адрес. Адрес ячейки
электронной таблицы составляется из заголовка столбца и заголовка строки,
например: Al, B5, E7. Ячейка, с которой производятся какие-то действия, выделяется рамкой и называется активной.
57
Электронные таблицы, с которыми работает пользователь в приложении, называются рабочими листами. Можно вводить и изменять данные одновременно на нескольких рабочих листах, а также выполнять вычисления на
основе данных из нескольких листов. Документы электронных таблиц могут
включать несколько рабочих листов и называются рабочими книгами.
Типы данных.
Электронные таблицы позволяют работать с тремя основными типами
данных: число, текст и формула.
Числа в электронных таблицах Excel могут быть записаны в обычном
числовом или экспоненциальном формате, например: 195,2 или 1.952Ё + 02.
По умолчанию числа выравниваются в ячейке по правому краю. Это объясняется тем, что при размещении чисел друг под другом (в столбце таблицы)
удобно иметь выравнивание по разрядам (единицы под единицами, десятки
под десятками и т. д.).
Текстом в электронных таблицах Excel является последовательность
символов, состоящая из букв, цифр и пробелов, например запись «32 Мбайт»
является текстовой. По умолчанию текст выравнивается в ячейке по левому
краю. Это объясняется традиционным способом письма (слева направо).
Формула должна начинаться со знака равенства и может включать в
себя числа, Имена ячеек, функции (Математические, Статистические, Финансовые, Дата и время и т.д.) и знаки математических: операций. Например,
формула «=А1+В2» обеспечивает сложение чисел, хранящихся в ячейках А1
и В2, а формула «=А1*5» — умножение числа, хранящегося в ячейке А1, на
5. При вводе формулы в ячейке отображается не сама формула, а результат
вычислений по этой формуле. При изменении исходных значений, входящих
в формулу, результат пересчитывается немедленно.
Абсолютные и относительные ссылки.
В формулах используются ссылки на адреса ячеек. Существуют два основных типа ссылок: относительные и абсолютные. Различия между ними
проявляются при копировании формулы из активной ячейки в другую ячейку.
58
Относительная ссылка в формуле используется для указания адреса
ячейки, вычисляемого относительно ячейки, в которой находится формула.
При перемещении или копировании формулы из активной ячейки относительные ссылки автоматически обновляются в зависимости от нового положения формулы. Относительные ссылки имеют следующий вид: А1, ВЗ.
Абсолютная ссылка в формуле используется для указания фиксированного адреса ячейки. При перемещении или копировании формулы абсолютные ссылки не изменяются. В абсолютных ссылках перед неизменяемым
значением адреса ячейки ставится знак доллара (например, $А$1).
Если символ доллара стоит перед буквой (например: $А1), то координата столбца абсолютная, а строки — относительная. Если символ доллара
стоит перед числом (например, А$1), то, наоборот, координата столбца относительная, а строки — абсолютная. Такие ссылки называются смешанными.
Пусть, например, в ячейке С1 записана формула =А$1+$В1, которая
при копировании в ячейку D2 приобретает вид =В$1+$В2.
Относительные ссылки при копировании изменились, а абсолютные —
нет.
Сортировка и поиск данных.
Электронные таблицы позволяют осуществлять сортировку данных.
Данные в электронных таблицах сортируются по возрастанию или убыванию. При сортировке данные выстраиваются в определенном порядке. Можно проводить вложенные сортировки, т. е. сортировать данные по нескольким столбцам, при этом назначается последовательность сортировки столбцов.
В электронных таблицах возможен поиск данных в соответствии с указанными условиями — фильтрами. Фильтры определяются с помощью условий поиска (больше, меньше, равно и т. д.) и значений (100, 10 и т. д.). Например, больше 100. В результате поиска будут найдены те ячейки, в которых содержатся данные, удовлетворяющие заданному фильтру.
Построение диаграмм и графиков.
Электронные таблицы позволяют представлять числовые данные в виде диаграмм или графиков. Диаграммы бывают различных типов (столбчатые, круговые и т. д.); выбор типа диаграммы зависит от характера данных.
59
2.5. Технология хранения, поиска и сортировки информации
Любой из нас, начиная с раннего детства, многократно сталкивался с
"базами данных". Это - всевозможные справочники, энциклопедии. Записная
книжка - это тоже "база данных", которая есть у каждого из нас.
Базы данных представляют собой информационные модели, содержащие данные об объектах и их свойствах. Базы данных хранят информацию о
группах объектов с одинаковыми свойствами. Информация в базах данных
хранится в упорядоченном виде (например, в записной книжке все записи
упорядочены по алфавиту, в библиотечном каталоге - либо по алфавиту, либо
по области знания).
База данных — это информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором
свойств.
Существует несколько различных типов баз данных: табличные, иерархические и сетевые.
Табличные базы данных
Табличная база данных содержит перечень объектов одного типа, т. е.
объектов с одинаковым набором свойств. Такую базу данных удобно представлять в виде двумерной таблицы.
Рассмотрим, например, базу данных «Компьютер» (табл.), представляющую собой перечень объектов (компьютеров), каждый из которых имеет
имя (название). В качестве характеристик (свойств) могут выступать тип
процессора и объем оперативной памяти.
Столбцы такой таблицы называют полями; каждое поле характеризуется своим именем (названием соответствующего свойства) и типом данных,
отражающих значения данного свойства. Поля Название и Тип процессора —
текстовые, а Оперативная память — числовое. При этом каждое поле облада60
ет определенным набором свойств (размер, формат и др.). Так, для поля Оперативная память задан формат данных целое число.
Поле базы данных — это столбец таблицы, включающий в себя значения определенного свойства.
Строки таблицы являются записями об объекте; эти записи разбиты на
поля столбцами таблицы. Запись базы данных — это строка таблицы, которая содержит набор значений различных свойств объекта.
В каждой таблице должно быть, по крайней мере, одно ключевое поле,
содержимое которого уникально для любой записи в этой таблице. Значения
ключевого поля однозначно определяют каждую запись в таблице.
Иерархические базы данных
Иерархические базы данных графически могут быть представлены как
дерево, состоящее из объектов различных уровней. Верхний уровень занимает один объект, второй — объекты второго уровня и
т. д.
Между объектами существуют связи, каждый
объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможно, чтобы объект-предок не имел потомков или
имел их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами.
Иерархической базой данных является Каталог
папок Windows, с которым можно работать, запустив
Проводник. Верхний уровень занимает папка Рабочий
стол (На втором уровне находятся папки Мой компьютер, Мои документы. Сетевое окружение и Корзина,
которые представляют собой потомков папки Рабочий
стол, будучи между собой близнецами. В свою очередь, папка Мой компьютер — предок по отношению
к папкам третьего уровня, папкам дисков (Диск
3,5(А:), С:, D:, E:, F:) и системным папкам (Принтеры,
Панель управления и др.).
Иерархической базой данных является реестр Windows, в котором хранится вся информация, необходимая для нормального функционирования
компьютерной системы (данные о конфигурации компьютера и установленных драйверах, сведения об установленных программах, настройки графического интерфейса).
61
Содержание реестра автоматически обновляется при установке нового
оборудования, инсталляции программ и т.д. Для просмотра и редактирования
реестра Windows в ручном режиме можно использовать специальную программу regedit.exe. Однако редактирование реестра нужно проводить крайне
осторожно при условии понимания выполняемых действий. Неквалифицированное редактирование реестра может привести компьютер в неработоспособное состояние.
Еще одним примером иерархической базы данных является база данных Доменная система имен подключенных к Интернету компьютеров. На
верхнем уровне находится табличная база данных, содержащая перечень доменов верхнего уровня (всего 264). На втором уровне - табличные базы данных, содержащие перечень доменов второго уровня для каждого домена первого уровня. На третьем уровне могут находится табличные базы, содержащие перечень доменов третьего уровня для каждого домена второго уровня,
и таблицы, содержащие IP-адреса компьютеров, находящихся в домене второго уровня.
Доменная система имен должна содержать записи обо всех компьютерах, подключенных к Интернету (более 150 мил. записей). Размещение такой
огромной базы на одном компьютере сделало бы поиск информации очень
медленным и неэффективным. Решение этой проблемы было найдено путем
размещения отдельных составных частей базы на различных DNS-серверах.
Таким образом, иерархическая база данных Доменная система имен является
распределенной базой данных.
Сетевые базы данных
Сетевая база данных образуется обобщением иерархической за счет
допущения объектов, имеющих более одного предка, т. е. каждый элемент
вышестоящего уровня может быть связан одновременно с любыми элементами следующего уровня. Вообще, на связи между объектами в сетевых моделях не накладывается никаких ограничений.
Сетевой базой данных фактически является Всемирная паутина глобальной компьютерной сети Интернет. Гиперссылки связывают между собой
сотни миллионов документов в единую распределенную сетевую базу данных.
62
Системы управления базами данных (СУБД)
Для создания баз данных, а также выполнения операции поиска и сортировки данных предназначены специальные программы — системы управления базами данных (СУБД).
Таким образом, необходимо различать собственно базы данных (БД) —
упорядоченные наборы данных, и системы управления базами данных
(СУБД) — программы, управляющие хранением и обработкой данных. Например, приложение Access, входящее в офисный пакет программ Microsoft
Office, является СУБД, позволяющей пользователю создавать и обрабатывать
табличные базы данных.
2.6. Технология объектно-ориентированного программирования
Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма
программирования, в которой основными концепциями являются понятия
объектов и классов (либо, в менее известном варианте языков с прототипированием, — прототипов).
Класс — это тип, описывающий устройство объектов. Понятие «класс»
подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определѐнным поведением и способом представления. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно
классы разрабатывают таким образом, чтобы их объекты соответствовали
объектам предметной области.
Класс является описываемой на языке терминологии (пространства
имѐн) исходного кода моделью ещѐ не существующей сущности, т.н. объекта.
Объект — сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска
результатов компиляции (и линковки) исходного кода на выполнение).
Прототип — это объект-образец, по образу и подобию которого создаются другие объекты.
Объектное и объектно-ориентированное программирование (ООП)
возникло в результате развития идеологии процедурного программирования,
где данные и подпрограммы (процедуры, функции) их обработки формально
не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое
событийно-ориентированное программирование) и компонента (компонентное программирование).
Первым языком программирования, в котором были предложены
принципы объектной ориентированности, была Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это
63
всѐ не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространѐнным
объектно-ориентированным языком программирования.
В настоящее время количество прикладных языков программирования
(список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного
программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является язык
C. Хотя при взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектноориентированного программирования. Например, одной из наиболее распространенных библиотек мультиплатформенного программирования является
объектно-ориентированная библиотека Qt, написанная на языке C++.
Главные понятия и разновидности ООП
Структура данных «класс», представляющая собой объектный тип данных, внешне похожа на типы данных процедурно-ориентированных языков,
такие как структура в языке Си или запись в Паскале или QuickBasic. При
этом элементы такой структуры (члены класса) могут сами быть не только
данными, но и методами (то есть процедурами или функциями). Такое объединение называется инкапсуляцией.
Наличие инкапсуляции достаточно для объектности языка программирования, но ещѐ не означает его объектной ориентированности — для этого
требуется наличие наследования.
Но даже наличие инкапсуляции и наследования не делает язык программирования в полной мере объектным с точки зрения ООП. Основные
преимущества ООП проявляются только в том случае, когда в языке программирования реализован полиморфизм.
Язык Self, соблюдая многие исходные положения объектноориентированного программирования, ввѐл альтернативное классам понятие
прототипа, положив начало прототипному программированию, считающемуся подвидом объектного.
Абстракция данных. Объекты представляют собою упрощенное, идеализированное описание реальных сущностей предметной области. Если соответствующие модели адекватны решаемой задаче, то работать с ними оказывается намного удобнее, чем с низкоуровневым описанием всех возможных
свойств и реакций объекта.
Инкапсуляция — это принцип, согласно которому любой класс должен
рассматриваться как чѐрный ящик — пользователь класса должен видеть и
использовать только интерфейсную часть класса (т. е. список декларируемых
свойств и методов класса) и не вникать в его внутреннюю реализацию. Поэтому данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью
64
методов. Принцип инкапсуляции (теоретически) позволяет минимизировать
число связей между классами и, соответственно, упростить независимую
реализацию и модификацию классов.
Сокрытие данных — неотделимая часть ООП, управляющая областями
видимости. Является логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить
внутреннее состояние объекта.
Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Наследование призвано отобразить такое свойство реального мира, как иерархичность.
Полиморфизмом называют явление, при котором функции (методу) с
одним и тем же именем соответствует разный программный код (полиморфный код) в зависимости от того, объект какого класса используется при вызове данного метода. Полиморфизм обеспечивается тем, что в классе-потомке
изменяют реализацию метода класса-предка с обязательным сохранением
сигнатуры метода. Это обеспечивает сохранение неизменным интерфейса
класса-предка и позволяет осуществить связывание имени метода в коде с
разными классами — из объекта какого класса осуществляется вызов, из того
класса и берѐтся метод с данным именем. Такой механизм называется динамическим (или поздним) связыванием — в отличие от статического (раннего)
связывания, осуществляемого на этапе компиляции.
Подходы к проектированию программ в целом
ООП ориентировано на разработку крупных программных комплексов,
разрабатываемых командой программистов (возможно, достаточно большой). Проектирование системы в целом, создание отдельных компонент и их
объединение в конечный продукт при этом часто выполняется разными
людьми, и нет ни одного специалиста, который знал бы о проекте всѐ.
Объектно-ориентированное проектирование основывается на описании
структуры и поведения проектируемой системы, то есть, фактически, в ответе на два основных вопроса:
Из каких частей состоит система.
В чѐм состоит ответственность каждой из частей.
Выделение частей производится таким образом, чтобы каждая имела
минимальный по объѐму и точно определѐнный набор выполняемых функций (обязанностей), и при этом взаимодействовала с другими частями как
можно меньше.
Дальнейшее уточнение приводит к выделению более мелких фрагментов описания. По мере детализации описания и определения ответственности
выявляются данные, которые необходимо хранить, наличие близких по поведению агентов, которые становятся кандидатами на реализацию в виде клас65
сов с общими предками. После выделения компонентов и определения интерфейсов между ними реализация каждого компонента может проводиться
практически независимо от остальных (разумеется, при соблюдении соответствующей технологической дисциплины).
Большое значение имеет правильное построение иерархии классов.
Одна из известных проблем больших систем, построенных по ООПтехнологии — так называемая проблема хрупкости базового класса. Она состоит в том, что на поздних этапах разработки, когда иерархия классов построена и на еѐ основе разработано большое количество кода, оказывается
трудно или даже невозможно внести какие-либо изменения в код базовых
классов иерархии (от которых порождены все или многие работающие в системе классы). Даже если вносимые изменения не затронут интерфейс базового класса, изменение его поведения может непредсказуемым образом отразиться на классах-потомках. В случае крупной системы разработчик базового
класса не просто не в состоянии предугадать последствия изменений, он даже не знает о том, как именно базовый класс используется и от каких особенностей его поведения зависит корректность работы классов-потомков.
Производительность объектных программ
Динамическое связывание методов.
Обеспечение полиморфного поведения объектов приводит к необходимости связывать методы, вызываемые программой (то есть определять, какой
конкретно метод будет вызываться) не на этапе компиляции, а в процессе исполнения программы, на что тратится дополнительное время. При этом реально динамическое связывание требуется не более чем для 20 % вызовов, но
некоторые ООП-языки используют его постоянно.
Значительная глубина абстракции.
ООП-разработка часто приводит к созданию «многослойных» приложений, где выполнение объектом требуемого действия сводится к множеству
обращений к объектам более низкого уровня. В таком приложении происходит очень много вызовов методов и возвратов из методов, что, естественно,
сказывается на производительности.
Наследование «размывает» код.
Код, относящийся к «оконечным» классам иерархии наследования (которые обычно и используются программой непосредственно) — находится не
только в самих этих классах, но и в их классах-предках. Относящиеся к одному классу методы фактически описываются в разных классах. Это приводит к двум неприятным моментам:
Снижается скорость трансляции, так как компоновщику приходится
подгружать описания всех классов иерархии.
Снижается производительность программы в системе со страничной
памятью — поскольку методы одного класса физически находятся в
разных местах кода, далеко друг от друга, при работе фрагментов
66
программы, активно обращающихся к унаследованным методам,
система вынуждена производить частые переключения страниц.
Инкапсуляция снижает скорость доступа к данным.
Запрет на прямой доступ к полям класса извне приводит к необходимости создания и использования методов доступа. И написание, и компиляция,
и исполнение методов доступа сопряжено с дополнительными расходами.
Динамическое создание и уничтожение объектов.
Динамически создаваемые объекты, как правило, размещаются в куче,
что менее эффективно, чем размещение их на стеке и, тем более, статическое
выделение памяти под них на этапе компиляции.
Несмотря на отмеченные недостатки, Буч утверждает, что выгоды от
использования ООП более весомы. Кроме того, повышение производительности за счѐт лучшей организации ООП-кода, по его словам, в некоторых
случаях компенсирует дополнительные накладные расходы на организацию
функционирования программы. Можно также заметить, что многие эффекты
снижения производительности могут сглаживаться или даже полностью устраняться за счѐт качественной оптимизации кода компилятором. Например,
упомянутое выше снижение скорости доступа к полям класса из-за использования методов доступа устраняется, если компилятор вместо вызова метода
доступа использует инлайн-подстановку (современные компиляторы делают
это вполне уверенно).
Объектно-ориентированные языки
Многие современные языки специально созданы для облегчения объектно-ориентированного программирования. Однако следует отметить, что
можно применять техники ООП и для не-объектно-ориентированного языка
и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.
Современный объектно-ориентированный язык предлагает, как правило, следующий обязательный набор синтаксических средств:
Объявление классов с полями (данными — членами класса) и методами (функциями — членами класса).
Механизм расширения класса (наследования) — порождение нового
класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка.
Большинство ООП-языков поддерживают только единичное наследование.
Средства защиты внутренней структуры классов от несанкционированного использования извне. Обычно это модификаторы доступа к
полям и методам, типа public, private, обычно также protected, иногда некоторые другие.
Полиморфные переменные и параметры функций (методов), позволяющие присваивать одной и той же переменной экземпляры различных классов.
67
Полиморфное поведение экземпляров классов за счѐт использования
виртуальных методов. В некоторых ООП-языках все методы классов
являются виртуальными.
Видимо, минимальным традиционным объектно-ориентированным
языком можно считать язык Оберон, который не содержит никаких других
объектных средств, кроме вышеперечисленных (в исходном Обероне даже
нет отдельного ключевого слова для объявления класса, а также отсутствуют
явно описываемые методы, их заменяют поля процедурного типа). Но большинство языков добавляют к указанному минимальному набору те или иные
дополнительные средства. В их числе:
Конструкторы, деструкторы, финализаторы.
Свойства (аксессоры).
Индексаторы.
Интерфейсы — как альтернатива множественному наследованию.
Переопределение операторов для классов.
Часть языков (иногда называемых «чисто объектными») целиком построена вокруг объектных средств — в них любые данные (возможно, за небольшим числом исключений в виде встроенных скалярных типов данных)
являются объектами, любой код — методом какого-либо класса и невозможно написать программу, в которой не использовались бы объекты. Примеры
подобных языков — Java или Ruby. Другие языки (иногда используется термин «гибридные») включают ООП-подсистему в исходно процедурный язык.
В них существует возможность программировать, не обращаясь к объектным
средствам. Классические примеры — C++ и Delphi (Object Pascal).
2.7. Коммуникационные технологии
Отличительной чертой современной эпохи является ускоряющийся с
каждым годом темп развития новых информационных технологий. Общество
вступает в фазу информатизации.
Будет целесообразным пояснить такие термины, как «информационное
общество» и «информатизация общества».
Информационное общество – это «общество, в котором социальноэкономическое развитие зависит прежде всего от производства, переработки,
хранения, распространения информации среди членов общества».
Общество можно назвать информационным, если в нем более 50% населения занято в сфере информационных услуг. Соответственно, Россия «делает только первые шаги в этом направлении». Информационное общество
отличается от предыдущих тем, что главным фактором в нѐм выступают не
материальные, а идеальные факторы – знание и информация. Отличительными особенностями такого общества являются:
увеличение роли информации в жизни общества;
рост доли информационных коммуникаций, продуктов и услуг в
жизни людей;
68
создание глобального информационного пространства.
Информатизация общества означает совокупность взаимосвязанных
политических, социально-экономических, научных факторов, которые обеспечивают свободный доступ каждому члену общества к любым источникам
информации, кроме законодательно секретных. Целью информатизации общества является улучшение качества жизни людей за счет одновременного
увеличения производительности и облегчения условий труда.
Влияние информатизации на сферу образования
Так как образование находится между производством и наукой, оно
должно соответствовать и уровню развития общественного производства, и
состоянию науки. Во второй половине ХХ века производство и наука развивались быстрыми темпами, в то время как образование эволюционировало
очень медленно. В результате назрели весьма глубокие противоречия между
производством и наукой, с одной стороны, и образованием, с другой.
В начале 70-х годов наступил кризис образования, который, несомненно, имел глобальный характер и определялся социально-политическими и
экономическими процессами, а также качественными изменениями в развитии науки и техники, особенно информатики. Стало очевидным, что необходимо совершенно иное направление развития современной системы образования - курс на индивидуализацию, самостоятельность обучения.
Все большую силу набирает демократизация, компьютеризация и гуманизация образования, свободный выбор программы обучения, создание
системы непрерывного образования.
Этапы информатизации образования
Первый этап информатизации образования (электронизация) характеризовался внедрением электронных средств и вычислительной техники в
процесс подготовки студентов сначала технических специальностей, а затем
гуманитарных (конец 60-х - начало 70-х годов). Предполагалось обучение
основам алгоритмизации и программирования, элементам алгебры логики,
математического моделирования на ЭВМ.
Данный подход предусматривал формирование у студентов алгоритмического стиля мышления, овладение языком программирования, освоение
умений работы на ЭВМ. Но отсутствие удобных в работе, понятных для
обычного пользователя программных средств не способствовали широкому
использованию вычислительной техники в сфере гуманитарного образования.
Второй этап информатизации образования (компьютеризация) протекал с середины 70-х годов по 90-е годы и был связан с появлением более
мощных компьютеров, упрощенного программного обеспечения. Подобные
компьютерные образовательные технологии позволили с помощью моделирования исследовать различные (химические, физические, социальные, педагогические и т.п.) процессы и явления. В сфере образования все больше стали
69
использоваться автоматизированные системы обучения, контроля знаний и
управления учебным процессом.
Третий, современный, этап информатизации образования характеризуется использованием мощных персональных компьютеров, быстродействующих накопителей большой емкости, новых информационных и телекоммуникационных технологий, мультимедиа-технологий и виртуальной реальности, а также осмыслением происходящего процесса информатизации и его
социальных последствий, что, конечно, является немаловажным.
Основные задачи информатизации образования
С появлением в процессе образования такой составляющей, как информатизация, стало целесообразным пересмотреть его задачи. Основными
из них являются:
повышение качества подготовки специалистов на основе использования в учебном процессе современных информационных технологий;
применение активных методов обучения и, как результат, повышение творческой и интеллектуальной составляющих учебной деятельности;
интеграция различных видов образовательной деятельности (учебной, исследовательской и т.д.);
адаптация информационных технологий обучения к индивидуальным особенностям обучаемого;
обеспечение непрерывности и преемственности в обучении;
разработка информационных технологий дистанционного обучения;
совершенствование программно-методического обеспечения учебного процесса.
А также важнейшей задачей информатизация сферы образования
должно стать опережение информатизации других отраслей человеческой
деятельности, поскольку знания и навыки, полученные в процесс е образования, лежат в основе всех видов деятельности человека.
Использование информационных и коммуникационных технологий в
образовании
Информационные и коммуникационные технологии (ИКТ) – это
«широкий спектр цифровых технологий, используемых для создания, передачи и распространения информации и оказания услуг (компьютерное оборудование, программное обеспечение, телефонные линии, сотовая связь,
электронная почта, сотовые и спутниковые технологии, сети беспроводной и
кабельной связи, мультимедийные средства, а также Интернет)».
Все средства ИКТ, применяемые в системе образования можно разделить на два типа: аппаратные и программные.
70
Аппаратные средства:
Компьютер - универсальное устройство обработки информации.
Принтер позволяет фиксировать на бумаге информацию, найденную и
созданную учащимися или учителем для учащихся. Для многих школьных
применений желателен цветной принтер.
Проектор повышает уровень наглядности в работе учителя, а также
возможность представлять учащимся результаты своей работы всему классу.
Телекоммуникационный блок дает доступ к российским и мировым
информационным ресурсам, позволяет вести дистантное обучение и переписку с другими школами.
Устройства для ввода текстовой информации и манипулирования
экранными объектами - клавиатура и мышь Особую роль соответствующие
устройства играют для учащихся с проблемами двигательного характера, например, с ДЦП.
Устройства для записи (ввода) визуальной и звуковой информации
(сканер, фотоаппарат, видеокамера, аудио- и видеомагнитофон) дают возможность непосредственно включать в учебный процесс информационные
образы окружающего мира.
Устройства регистрации данных (датчики с интерфейсами) существенно расширяют класс физических, химических, биологических, экологических процессов, включаемых в образование при сокращении учебного времени, затрачиваемого на рутинную обработку данных.
Управляемые компьютером устройства дают возможность учащимся различных уровней способностей освоить принципы и технологии автоматического управления.
Внутриклассная и внутришкольная сети позволяют более эффективно использовать имеющиеся информационные, технические и временные
(человеческие) ресурсы, обеспечивают общий доступ к глобальной информационной сети.
Аудио-видео средства обеспечивают эффективную коммуникативную
среду для воспитательной работы и массовых мероприятий.
Программные средства:
Общего назначения и связанные с аппаратными (драйверы и т. п.) дают возможность работы со всеми видами информации.
Источники информации - организованные информационные массивы
энциклопедии на компакт-дисках, информационные сайты и поисковые системы Интернета, в том числе специализированные для образовательных применений.
Виртуальные конструкторы позволяют создавать наглядные и символические модели математической и физической реальности и проводить
эксперименты с этими моделями.
71
Тренажеры позволяют отрабатывать автоматические навыки работы с
информационными объектами: ввод текста, оперирование с графическими
объектами на экране и пр.
Тестовые среды позволяют конструировать и применять автоматизированные испытания, в которых учащийся полностью или частично получает
задание через компьютер, и результат выполнения задания также полностью
или частично оценивается компьютером.
Комплексные обучающие пакеты (электронные учебники) - сочетания
программных средств перечисленных выше видов - в наибольшей степени
автоматизирующие учебный процесс в его традиционных формах, наиболее
трудоемкие в создании, наиболее ограничивающие самостоятельность учителя и учащегося.
Информационные системы управления обеспечивают прохождение
информационных потоков между всеми участниками образовательного процесса: учащимися, учителями, администрацией, родителями, общественностью.
Экспертные системы - программная система, использующая знания
специалиста-эксперта для эффективного решения задач в какой-либо предметной области.
Информационные и коммуникационные технологии в научной деятельности
Прорыв в области ИКТ, происходящий в настоящее время, заставляет
пересматривать вопросы организации информационного обеспечения научно-исследовательской деятельности. Можно выделить несколько возможностей использования информационных технологий:
1. для поиска литературы
в электронном каталоге библиотеки учебного заведения;
в Internet с применением браузеров типа Internet Explorer, Mozilla
Firefox и др., различных поисковых машин (Yandex.ru,
Rambler.ru, Mail.ru, Aport.ru, Google.ru, Metabot.ru, Search.com,
Yahoo.com, Lycos.com и т.д.);
2. для работы с литературой в ходе реферирования, конспектирования,
аннотирования, цитирования и т.д.;
3. для автоматического перевода текстов с помощью программпереводчиков (PROMT XT), с использованием электронных словарей (Abby Lingvo 7.0.);
4. для хранения и накопления информации (CD-, DVD-диски, внешние
накопители на магнитных дисках, Flash-диски);
5. для планирования процесса исследования (система управления Microsoft Outlook);
6. для общения с ведущими специалистами (Internet, электронная почта);
72
7. для обработки и воспроизведения графики и звука (проигрыватели
Microsoft Media Player, WinAmp, Apollo, WinDVD, zplayer, программы для просмотра изображений ACD See, PhotoShop, CorelDraw,
программы для создания схем, чертежей и графиков Visio) и др.;
8. для пропаганды и внедрения результатов исследования (выступления в видеофорумах, телемостах, публикации в СМИ, Интернет).
Также информационные технологии могут оказать помощь в создании
по результатам исследования учебных и воспитательных фильмов, мультфильмов, передач, роликов социальной рекламы для телевидения, обучающих компьютерных программ, игр, интерактивных путешествий, энциклопедий и т.д.
73
Библиографический список
Основная литература
1. Макарова, Н.В. Информатика : учебник для вузов / Н.В.Макарова [и
др.];Под ред.Н.В.Макаровой .— 3-е изд.,перераб. — М. : Финансы и статистика, 2007 .— 768с. : ил. — Библиогр.в конце гл. — ISBN 5-279-02202-0 /в
пер./ : 253.81 .— ISBN 978-5-279-02202-1.
2. Степанов, А.Н. Информатика : учеб.пособие для вузов /
А.Н.Степанов .— 5-е изд. — М.[и др.] : Питер, 2007 .— 765с. : ил. — (Учебник для вузов) .— Библиогр.в конце кн. — ISBN 978-5-469-01348-8 /в пер./ :
250.52.
3. Острейковский, В. А. Информатика : учебник для вузов / В. А. Острейковский .— 5-е изд., стер. — М. : Высш. шк., 2009 .— 512 с. : ил .— Библиогр.: с. 508 .— ISBN 978-5-06-006134-5 (в пер.) .
4. Курносов, А.П. Информатика : учеб.пособие для вузов /
А.П.Курносов [и др.];под ред.А.П.Курносова .— М. : КолосС, 2005 .— 272с.
— (Учебники и учебные пособия для высших учебных заведений) .— Библиогр.в конце кн. — ISBN 5-9532-0279-2 /в пер./ : 149.60.
5. Советов, Б.Я. Информационные технологии : учебник для вузов /
Б.Я.Советов,В.В.Цехановский .— 2-е изд.,стер. — М. : Высш.шк., 2005 .—
263с. : ил. — Библиогр.в конце кн. — ISBN 5-06-004275-8 /в пер./ : 128.74.
Дополнительная литература
1. Князева, М.А.Тульский государственный университет Информатика
: учеб.пособие. Ч.1 / М.А.Князева,М.А.Андриянова;ТулГУ .— Тула : Изд-во
ТулГУ, 2006 .— 108с. — Библиогр.в конце кн. — ISBN 5-7679-0999-7 :
40.00.
2. Бройдо, В.Л. Вычислительные системы,сети и телекоммуникации :
учебное пособие для вузов / В.Л.Бройдо .— 2-е изд. — М. : Питер, 2005 .—
703с. : ил. — (Учебник для вузов) .— ISBN 5-94723-634-6 /в пер./ : 130.68.
3. Землянский, А.А. Практикум по информатике : учеб.пособие для вузов
/
А.А.Землянский,Г.А.Кретова,Ю.Р.Стратонович,Е.А.Яшкова;под
ред.А.А.Землянский .— М. : КолосС, 2004 .— 384с. — (Учебники и учебные
пособия для высших учебных заведений) .— Библиогр.в конце кн. — ISBN
5-9532-0046-3 /в пер./ : 179.41.
4. Конев, Ф.Б. Информатика для инженеров : учеб.пособие для вузов /
Ф.Б.Конев .— М. : Высш.шк., 2004 .— 272с. — ISBN 5-06-004871-3 : 101.16.
5. Микшина, В.С. Лабораторный практикум по информатике :
Учеб.пособие для вузов / В.С.Микшина,Г.А.Еремеева,К.И.Бушмелева и
др.;Под ред.В.А.Острейковского .— М. : Высш.шк., 2003 .— 376с. : ил. —
Библиогр.в конце кн. — ISBN 5-06-004273-1 /в пер./ : 84.00.
74