+ All Categories
Home > Documents > Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 ›...

Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 ›...

Date post: 29-Jun-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
131
1 Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Ульяновский государственный технический университет Г. Р. Кадырова Курс лекций по информатике Часть 2 Ульяновск 2008
Transcript
Page 1: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

1

Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования

Ульяновский государственный технический университет

Г. Р. Кадырова

Курс лекций по информатике

Часть 2

Ульяновск 2008

Page 2: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

2

УДК 681.3.06(075) ББК 22.18я7 К 13

Рецензенты: зав. кафедрой «Математическая кибернетика и информатика» УлГУ,

д.т.н., профессор И.В. Семушин

зав. кафедрой «Информационные технологии и системы» УлГУ, д.т.н., профессор К.В.

Кумунжиев

Одобрено секцией учебных пособий научно-методического совета уни-

верситета. Кадырова Г. Р.

К 13 Курс лекций по информатике (В двух частях) Часть 2: учебное пособие / Г. Р. Кадырова. – Ульяновск: УлГТУ, 2008. – 133 с.

ISBN 978-5-9795-0267-0 УДК 681.3.06 (075)

ББК 22.18я7

Учебное издание

КАДЫРОВА ГУЛЬНАРА РИВАЛЬЕВНА

Курс лекций по информатике (В ДВУХ ЧАСТЯХ) ЧАСТЬ 2

Учебное пособие

Ульяновский государственный технический университет

432027, г. Ульяновск, ул. Северный Венец, д. 32. Типография УлГТУ. 432027, г. Ульяновск, ул. Северный Венец, д. 32.

© Кадырова Г. Р., 2008 ISBN 978-5-9795-0267-0 © Оформление. УлГТУ, 2008

Page 3: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

3

ОГЛАВЛЕНИЕ ПРЕДИСЛОВИЕ ............................................................................................................................................................. 5

ТЕМА 1. ОБРАБОТКА ДАННЫХ СРЕДСТВАМИ ЭЛЕКТРОННЫХ ТАБЛИЦ .............................................. 6

ОБЛАСТЬ ПРИМЕНЕНИЯ ................................................................................................................................................. 6 ОСНОВНЫЕ ПОНЯТИЯ ЭЛЕКТРОННЫХ ТАБЛИЦ .............................................................................................................. 6 ОБЩАЯ ХАРАКТЕРИСТИКА ИНТЕРФЕЙСА MS EXCEL .................................................................................................... 8 ТЕХНОЛОГИЯ ВВОДА ДАННЫХ В MS EXCEL ................................................................................................................ 10 ФОРМУЛЫ, ФУНКЦИИ, МАСТЕР ФУНКЦИЙ ................................................................................................................... 13 КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 16

ТЕМА 2. ВВЕДЕНИЕ В ТЕХНОЛОГИЮ БАЗ ДАННЫХ .................................................................................... 17

БАЗЫ ДАННЫХ И СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ ...................................................................................... 17 ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ БАЗ ДАННЫХ ................................................................................................................ 18 МОДЕЛИ ДАННЫХ ........................................................................................................................................................ 18 СРЕДСТВА УСКОРЕНИЯ ДОСТУПА К ДАННЫМ .............................................................................................................. 24 ЯЗЫК ЗАПРОСОВ ........................................................................................................................................................... 26 ПРОГРАММНЫЕ СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ ........................................................................................ 27 СТРУКТУРА ПРОСТЕЙШЕЙ БАЗЫ ДАННЫХ ................................................................................................................... 29 ОБЪЕКТЫ БАЗЫ ДАННЫХ ............................................................................................................................................. 30 РЕЖИМЫ РАБОТЫ С БАЗАМИ ДАННЫХ ......................................................................................................................... 33 РАЗРАБОТКА СХЕМЫ ДАННЫХ ..................................................................................................................................... 33 КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 36

ТЕМА 3. ЭТАПЫ СОЗДАНИЯ ПРОГРАММ ......................................................................................................... 37

КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 44

ТЕМА 4. СИСТЕМЫ И ЯЗЫКИ ПРОГРАММИРОВАНИЯ ............................................................................... 45

СИСТЕМЫ ПРОГРАММИРОВАНИЯ ................................................................................................................................. 45 КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ...................................................................................................... 46 КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 51

ТЕМА 5. МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ ........................................................................................ 52

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ .......................................................................................................................... 52 НИСХОДЯЩЕЕ ПРОЕКТИРОВАНИЕ ................................................................................................................................ 54 КОНЦЕПЦИЯ МОДУЛЬНОГО ПРОГРАММИРОВАНИЯ ...................................................................................................... 55 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) .................................................................................. 55 ДЕКЛАРАТИВНОЕ ПРОГРАММИРОВАНИЕ ..................................................................................................................... 56 ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ ....................................................................................................................... 56 CASE-СИСТЕМЫ .......................................................................................................................................................... 56 ИНДУСТРИЯ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ............................................................................................................. 57 Данные и знания .................................................................................................................................................... 58 Модели представления знаний ............................................................................................................................. 59 Экспертные системы ........................................................................................................................................... 62

КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 64

ТЕМА 6. ПАСКАЛЬ – СТРУКТУРНЫЙ ЯЗЫК ..................................................................................................... 65

ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ ................................................................................................ 65

СТРУКТУРА ПРОГРАММЫ ............................................................................................................................................. 65 КОНСТАНТЫ И ПЕРЕМЕННЫЕ ....................................................................................................................................... 66 ОСНОВНЫЕ ТИПЫ ДАННЫХ .......................................................................................................................................... 67 ВЫРАЖЕНИЯ, ОПЕРАНДЫ, ОПЕРАЦИИ ......................................................................................................................... 70 СОВМЕСТИМОСТЬ И ПРЕОБРАЗОВАНИЕ ТИПОВ ........................................................................................................... 72 ОСНОВНЫЕ ОПЕРАТОРЫ ЯЗЫКА ................................................................................................................................... 72 МАССИВЫ .................................................................................................................................................................... 81 ПРОЦЕДУРЫ И ФУНКЦИИ ............................................................................................................................................. 85 КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 87

ТЕМА 7. ОСНОВНЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ ......................................................................................... 89

КОМПЬЮТЕРНЫХ СЕТЕЙ ...................................................................................................................................... 89

Page 4: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

4

ОСНОВНЫЕ ПОКАЗАТЕЛИ КАЧЕСТВА ИВС .................................................................................................................. 89 ВИДЫ ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ ................................................................................................. 90 КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 93

ТЕМА 8. СПОСОБЫ СВЯЗИ КОМПЬЮТЕРОВ ................................................................................................... 94

КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................................................................................................. 96

ТЕМА 9. МОДЕЛЬ ВЗАИМОДЕЙСТВИЯ ОТКРЫТЫХ СИСТЕМ OSI ......................................................... 97

ФИЗИЧЕСКИЙ УРОВЕНЬ ................................................................................................................................................ 97 КАНАЛЬНЫЙ УРОВЕНЬ ................................................................................................................................................. 98 СЕТЕВОЙ УРОВЕНЬ ....................................................................................................................................................... 98 ТРАНСПОРТНЫЙ УРОВЕНЬ ........................................................................................................................................... 99 СЕАНСОВЫЙ УРОВЕНЬ ................................................................................................................................................. 99 ПРЕДСТАВИТЕЛЬСКИЙ УРОВЕНЬ .................................................................................................................................. 99 ПРИКЛАДНОЙ УРОВЕНЬ ............................................................................................................................................... 99 КОНТРОЛЬНЫЕ ВОПРОСЫ ........................................................................................................................................... 100

ТЕМА 10. ТЕХНИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИВС ...................................................... 101

ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ .......................................................... 101 Серверы и рабочие станции .................................................................................................................................... 101 Маршрутизаторы и коммутирующие устройства ........................................................................................ 103 Модемы и сетевые карты .................................................................................................................................. 104

Аналоговые модемы .......................................................................................................................................................... 104 Модемы для цифровых каналов связи ............................................................................................................................. 105 Сетевые карты .................................................................................................................................................................... 106

Устройства межсетевого интерфейса ........................................................................................................... 107 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ ........................................................ 109 КОНТРОЛЬНЫЕ ВОПРОСЫ ........................................................................................................................................... 110

ТЕМА 11. ЛОКАЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ ................................................................................... 111

ВИДЫ ЛОКАЛЬНЫХ СЕТЕЙ ......................................................................................................................................... 111 БАЗОВЫЕ ТЕХНОЛОГИИ ЛОКАЛЬНЫХ СЕТЕЙ .............................................................................................................. 114 ПОСТРОЕНИЕ ЛОКАЛЬНЫХ СЕТЕЙ.............................................................................................................................. 115 Структуризация локальных сетей средствами канального уровня .................................................................. 115 Построение локальных сетей средствами сетевого уровня ............................................................................. 116

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ ........................................................................ 117 КОНТРОЛЬНЫЕ ВОПРОСЫ ........................................................................................................................................... 118

ТЕМА 12. ГЛОБАЛЬНАЯ СЕТЬ ИНТЕРНЕТ ...................................................................................................... 119

ОСНОВНЫЕ ПОНЯТИЯ ................................................................................................................................................ 119 ИНФОРМАЦИОННЫЕ РЕСУРСЫ (СЛУЖБЫ) ИНТЕРНЕТ ................................................................................................ 119 ПРОГРАМНОЕ ОБЕСПЕЧЕНИЕ РАБОТЫ В ИНТЕРНЕТЕ ................................................................................................. 122 АДРЕСАЦИЯ И ПРОТОКОЛЫ В ИНТЕРНЕТЕ ................................................................................................................. 122 КОНТРОЛЬНЫЕ ВОПРОСЫ ........................................................................................................................................... 125

ТЕМА 13. ВИРУСЫ И АНТИВИРУСНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ......................................... 127

СВОЙСТВА КОМПЬЮТЕРНЫХ ВИРУСОВ ..................................................................................................................... 127 КЛАССИФИКАЦИЯ ВИРУСОВ ...................................................................................................................................... 127 ПРОГРАММЫ ОБНАРУЖЕНИЯ И ЗАЩИТЫ ОТ ВИРУСОВ .............................................................................................. 129 КОНТРОЛЬНЫЕ ВОПРОСЫ ........................................................................................................................................... 131

БИБЛИОГРАФИЧЕСКИЙ СПИСОК .................................................................................................................... 131

Page 5: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

5

Предисловие Настоящее пособие посвящено изучению основ информатики. Современ-

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

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

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

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

В темах 1 и 2 рассказывается о программных системах, без которых невоз-можно представить себе современную информатику. Базы данных и системы управления базами данных, электронные таблицы обсуждаются в этих темах.

Тему «Алгоритм и его свойства» традиционно считают главной темой тео-ретической информатики, вводящей в обширные практические разделы алго-ритмизации. Разработка алгоритмов и программ для решения прикладных задач является одним из важнейших направлений дисциплины и остается наиболее стабильным компонентом подготовки специалиста в вузе. Рассмотрению этапов создания программ, различных языков программирования, а также методологи-ям программирования посвящены темы 3, 4, 5. Основы программирования из-лагаются на языке Паскаль, который является основным языком, изучаемым в ходе подготовки специалистов. Этому вопросу посвящена тема 6.

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

Тема 13 посвящена актуальной в настоящее время проблеме компьютер-ных вирусов, также рассмотрены некоторые свойства компьютерных вирусов, их классификация, программы обнаружения и защиты от них.

Данное пособие может быть использовано как для подготовки к лекцион-ным занятиям по курсу «Информатика», так и для индивидуального обучения теоретическим основам информатики.

Page 6: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

6

Тема 1. Обработка данных средствами электронных таблиц

Область применения В настоящее время в области экономики и финансов чаще всего применя-

ются табличные процессоры, или, проще, электронные таблицы. Очень часто встречаются задачи, требующие разработки нестандартных

документов. Для этой цели очень хорошо подходит электронная таблица MS Excel. В первую очередь она используется для подготовки документов, тре-бующих математических расчетов: сводок, отчетов, смет и т. д. Важнейшей особенностью электронных таблиц является их способность обеспечивать ав-томатический пересчет и обновление связей при вводе или изменении данных. Как только вводятся новые данные, электронная таблица мгновенно проводит перерасчет по ранее заданным формулам, и информация моментально обновля-ется. Эта особенность таблиц с успехом используется для анализа многовари-антных ситуаций или ответа на вопросы типа «Что будет, если...?» (изменение содержимого какой-либо одной ячейки приводит к пересчету значений всех ячеек, которые с ней связаны формульными отношениями, и, тем самым, при обновлении каких-либо частных данных обновление всей таблицы происходит автоматически).

Электронные таблицы нашли широчайшее применение в экономических и бухгалтерских расчетах. В состав программы входят шаблоны многих бухгал-терских документов (счетов, накладных).

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

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

Основные понятия электронных таблиц Рабочая книга и рабочий лист. Строки и столбцы

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

Page 7: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

7

Табличное пространство рабочего листа состоит из строк и столбцов. Столбцы озаглавлены прописными латинскими буквами и, далее, двухбуквен-ными комбинациями. Всего рабочий лист может содержать до 256 столбцов. Строки последовательно нумеруются числами, от 1 до 65536 (максимально до-пустимый номер строки). Ячейки и их адресация

На пересечении столбцов и строк образуются ячейки таблицы. Они явля-ются минимальными элементами хранения данных. Обозначение отдельной ячейки сочетает в себе номера столбца и строки (в этом порядке), на пересече-нии которых она расположена, например: А1 или DE234. Обозначение ячейки (ее номер) выполняет адресную функцию. Адреса ячеек используются при за-писи формул, определяющих взаимосвязь между значениями, расположенными в разных ячейках.

В расширенном формате адрес ячейки имеет вид [Имя_файла_рабочей_книги]<имя_листа>!<адрес_ячейки>, например: [Книга1. xls]Лист1!A1 Ячейкам (блокам ячеек) также можно присваивать собственные имена и

использовать их для ссылок на ячейки наряду с адресами: 1. Выделить ячейку (блок ячеек); 2. Выбрать пункт меню Вставка ► Имя ► Присвоить (Определить); 3. Указать имя ячейки (блока ячеек), начинающееся с буквы. Использование содержательных имен вместо «слепых» адресов при работе

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

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

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

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

Page 8: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

8

столбцов. Диапазон ячеек обозначают, указывая через двоеточие номера ячеек, расположенных в противоположных углах прямоугольника, например: А1:С15.

Если требуется выделить прямоугольный диапазон ячеек, то это можно сделать протягиванием указателя от одной угловой ячейки до противополож-ной по диагонали. Рамка текущей ячейки при этом расширяется, охватывая весь выбранный диапазон. Чтобы выбрать столбец или строку целиком, достаточно щелкнуть на заголовке столбца (строки). Протягиванием указателя по заголов-кам можно выбрать несколько идущих подряд столбцов или строк.

Выделение несмежного диапазона ячеек производится с помощью мыши при нажатой клавише Ctrl.

Общая характеристика интерфейса MS Excel Среди основных интерфейсных элементов окна (см. рис 1.1) могут быть

названы: • строка меню; • панели инст-

рументов; • строка ввода

данных или строка формул;

• окно адреса активной (текущей) ячейки;

• ярлыки листов рабочей книги и кнопки навигации по ним;

• линейки про-крутки.

Панели инстру-ментов – значки, кнопки, раскрываю-

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

Чтобы вывести на экран дополнительные панели инструментов, нужно воспользоваться меню Вид ► Панели инструментов..., где выбрать необходи-мую панель.

Строка ввода данных - в ней отображается содержимое активной ячейки.

Page 9: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

9

Строка состояния – отображает сведения о выбранной команде или вы-полняемой операции, а также справочную информацию о включенных функ-циональных клавишах.

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

Перемещаться по листу рабочей книги можно с помощью: • клавиатуры (соответствующие комбинации клавиш и стрелки управления

курсором); • мыши (полосы прокрутки); • команды меню Правка ► Перейти. В поле Ссылка указать адрес нужной

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

ны в табл. 1.1.

Таблица 1.1. Клавиши перемещения по листу рабочей книги Excel

Стрелки управления курсором На одну ячейку в направлении стрелки Ctrl+ стрелки управления курсором Переход к следующей ячейки, содержащей данные

PageUp, Page Down Постраничное листание

Ctrl+End, Ctrl+Home Начало, конец рабочего листа

Ноmе К крайней слева ячейке листа

End К последнему столбцу в строке

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

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

• с помощью команд главного меню; • с помощью панелей инструментов; • с помощью команд контекстных меню, активизируемых по щелчку пра-

вой клавиши мыши; • нажатием специальных клавиатурных комбинаций. В случае электронных таблиц умелое сочетание различных методов управ-

ления позволяет достигнуть существенного повышения скорости и эффектив-ности работы.

Page 10: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

10

Технология ввода данных в MS Excel Как уже отмечалось ранее, ячейка предназначена для того, чтобы хранить

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

Ячейки имеют заданный формат, который можно установить из меню Формат командой Ячейки. Эта команда имеет несколько вкладок. Вкладки от-крывающегося диалогового окна позволяют выбирать формат записи данных (количество знаков после запятой, указание денежной единицы, способ записи даты и прочее), задавать направление текста и метод его выравнивания, опре-делять шрифт и начертание символов, управлять отображением и видом рамок, задавать фоновый цвет. Из вкладки Число можно выбрать категорию значений в ячейке и задать код формата, в том числе можно создать пользовательский формат.

Чтобы ввести данные в ячейку следует: 1. Сделать ячейку активной – поместить курсор в нужную ячейку и один

раз щелкнуть левой клавишей мыши; 2. Ввести данные прямо с клавиатуры в режиме редактирования ячейки

(курсор ввода находится внутри ячейки). Или: 1. Дважды щелкнуть левой клавишей мыши; 2. Ввести данные в режиме редактирования строки формул (курсор ввода

находится в строке формул над рабочим листом), текст будет автоматически появляться и в строке формул;

3. Завершить ввод одним из трех способов: нажатием клавиши Enter; щелчком мыши вне рабочего пространства изменяемой ячейки; щелчком мыши по «зеленой галочке» в строке формул. Для того чтобы изменить (отредактировать) уже введенные данные, следу-

ет: • очистить ячейку (клавиша Delete) и повторить ввод данных; • исправить (отредактировать) содержимое ячейки, для этого: войти в режим редактирования, дважды щелкнув левой клавишей мыши или нажать функциональную клавишу F2;

изменить данные. В ячейки можно вводить данные различных типов: текст, числа, даты,

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

В качестве текста можно вводить различные комбинации букв и цифр. Текст по умолчанию выравнивается по левому краю, а числа – по правому.

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

Page 11: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

11

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

В Excel существует несколько способов, которые позволяют упростить и ускорить процесс ввода данных:

• повторный ввод (копирование) уже существующих данных; • автозаполнение; • ввод прогрессий. Для повтора (копирования) существующих данных следует: 1) выделить ячейку; 2) подвести указатель мыши к маркеру автозаполнения и перетащить рам-

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

Аналогичного результата можно добиться, если воспользоваться меню Правка ► Заполнить и указать направление копирования.

Чтобы методом перетаскивания переместить текущую ячейку (выделен-ный диапазон) вместе с содержимым, следует навести указатель мыши на рам-ку текущей ячейки (он примет вид стрелки). Теперь ячейку можно перетащить в любое место рабочего листа (точка вставки помечается всплывающей под-сказкой).

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

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

Место вставки определяется путем указания ячейки, соответствующей верхнему левому углу диапазона, помещенного в буфер обмена, или путем вы-деления диапазона, который по размерам в точности равен копируемому (пере-мещаемому). Вставка выполняется командой Правка > Вставить. Для управ-ления способом вставки можно использовать команду Правка > Специальная

Page 12: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

12

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

Автозаполнение – заполняет выделенные ячейки выбранными (либо соз-данными дополнительно) последовательностями.

Рассмотрим пример. Пусть необходимо заполнить диапазон ячеек назва-ниями месяцев (Январь, Февраль и т. д.). Для этого нужно:

1. Ввести в первую ячейку слово – Январь; 2. Перетащить маркер автозаполнения в нужном направлении (вверх, вниз,

влево, вправо). Для того чтобы создать собственную последовательность для автозаполне-

ния, нужно: 1. Выполнить команду меню Сервис ► Параметры и выбрать вкладку

Списки; 2. В элементе управления Списки сделать активным пункт Новый список; 3. В поле Элементы списка ввести последовательность строк, которые

должны образовать новый список. При этом каждый элемент списка вводится с новой строки;

4. Процесс формирования нового списка завершить нажатием кнопки Добавить.

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

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

Пусть, например, ячейка А1 содержит число 1. Наведите указатель мыши на маркер заполнения, нажмите правую кнопку мыши и перетащите маркер за-полнения так, чтобы рамка охватила ячейки А1, В1 и С1, и отпустите кнопку мыши. Если теперь выбрать в открывшемся меню пункт Копировать ячейки, все ячейки будут содержать число 1. Если же выбрать пункт Заполнить, то в ячейках окажутся числа 1, 2 и 3.

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

Для создания прогрессии нужно: 1. Ввести значение первого элемента прогрессии в выбранную базовую

ячейку; 2. Выделить блок ячеек, который должны будут занять члены прогрессии

(либо в дальнейшем придется указать значение последнего элемента); 3. Выполнить команду меню Правка ► Заполнить ► Прогрессия; 4. В открывшемся диалоговом окне Прогрессия выбирается тип прогрес-

сии, величина шага и предельное значение. После щелчка на кнопке ОК про-грамма Excel автоматически заполняет ячейки в соответствии с заданными правилами.

Page 13: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

13

Формулы, функции, мастер функций Формулы

Вычисления в таблицах программы Excel осуществляются при помощи формул. Каждая формула начинается с символа равно (=). Формула может со-держать числовые константы, ссылки на ячейки и функции Ехсеl, соединенные знаками математических операций. Если ячейка содержит формулу, то в рабо-чем листе отображается только текущий результат вычисления этой формулы. Чтобы увидеть саму формулу, а не результат ее работы, надо выделить ячейку (сделать ее текущей) и посмотреть на запись, которая отображается в строке формул.

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

1. Возведение в степень и выражения в круглых скобках; 2. Умножение и деление; 3. Сложение и вычитание. Основное правило использования формул в программе Excel состоит в

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

Ссылки на ячейки Пусть содержимое ячейки В2 определяется формулой А2*В1 (в строке

формул задана формула = А2*В1). В ней записана операция над содержимым двух ячеек. Вместо чисел в формуле использованы имена ячеек - принято гово-рить ссылки на ячейки. Ссылки выполняют роль адресов ячеек, содержимое ко-торых используется в вычислениях. Это означает, что результат расчета зависит от того, какие числа находятся в ячейках, участвующих в вычислении. Таким образом, ячейка, содержащая формулу, является зависимой. Значение в зависи-мой ячейке подлежит пересчету всякий раз, когда изменяются значения в ячей-ках, на которые указывают ссылки, входящие в формулу.

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

адрес которого требуется ввести. Ячейка или диапазон при этом выделяются пунктирной рамкой.

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

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

Page 14: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

14

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

Поясним это обстоятельство на примере. Пусть, например, в ячейке В2 имеется ссылка на ячейку A3, которая располагается на один столбец левее и на одну строку ниже. Если формула будет скопирована в другую ячейку, то такое относительное указание ссылки сохранится. Например, при копировании фор-мулы в ячейку H10 ссылка будет продолжать указывать на ячейку, распола-гающуюся левее и ниже, в данном случае на ячейку G11.

Абсолютная адресация. При абсолютной адресации адреса ссылок при копировании формулы не изменяются, так что ячейка, на которую указывает ссылка, рассматривается как постоянная. В качестве признака абсолютной ссылки в адресе используется знак $. Различают:

• полную абсолютную ссылку (знак $ ставится и перед именем столбца, и перед номером строки, например $А$8). В этом случае при копировании и пе-ремещении адрес ячейки не меняется;

• частичную абсолютную ссылку (знак $ ставится либо перед номером строки, либо перед именем столбца, например А$8 или $А8. В данном случае при копировании и перемещении неизменной остается только одна из координат).

Для быстрого изменения типа адресации в формулах используется функ-циональная клавиша F4 (при ее последовательном нажатии вид адреса, нахо-дящегося в строке ввода данных, попеременно меняется с относительного на абсолютный, с абсолютного на частично абсолютный и т. д.).

Автозаполнение формулами В ходе автозаполнения во внимание принимается характер ссылок в фор-

муле: относительные ссылки изменяются в соответствии с относительным рас-положением копии и оригинала, а абсолютные ссылки остаются без изменений.

Для примера предположим, что значения в третьем столбце рабочего листа (столбце С) вычисляются как суммы значений в соответствующих ячейках столбцов А и В. Введем в ячейку С1 формулу = А1+В1. Теперь скопируем эту формулу методом автозаполнения во все ячейки третьего столбца таблицы. Благодаря относительной адресации формула будет правильной для всех ячеек данного столбца. В таблице 1.2. приведены правила обновления ссылок при ав-тозаполнении вдоль строки или вдоль столбца.

Таблица 1.2. Правила обновления ссылок при автозаполнении

Ссылка в исходной ячейке Ссылка в следующей ячейке При заполнении вправо При заполнении вниз

А1 (относительная) В1 А2 $А1 (абсолютная по столбцу) $А1 $А2 А$1 (абсолютная по строке) В$1 А$1 $А$1 (абсолютная) $А$1 $А$1

Page 15: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

15

Использование стандартных функций Стандартные функции используются в программе Excel только в форму-

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

Использование мастера функций Если начать ввод формулы щелчком на кнопке Вставка функции (в стро-

ке формул – кнопка ), то появляется Мастер функций, облегчающий выбор нужной функции. В списке Категория выбирается категория, к которой отно-сится функция (если определить категорию затруднительно, используют пункт Полный алфавитный перечень), а в списке Функция - конкретная функция данной категории. После щелчка на кнопке ОК имя функции заносится в строку формул вместе со скобками, ограничивающими список параметров. Текстовый курсор устанавливается между этими скобками. В левой части строки формул, где раньше располагался номер текущей ячейки, теперь появляется раскры-вающийся список функций. Он содержит десять функций, которые использова-лись последними, а также пункт Другие функции.

Ввод параметров функции В ходе ввода параметров функции палитра формул изменяет вид. На ней

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

Рис. 1.2 Строка формул и палитра формул Параметры можно вводить непосредственно в строку формул или в поля

палитры формул, а если они являются ссылками – выбирать на рабочем листе. Если параметр задан, в палитре формул указывается его значение, а для опу-щенных параметров – значения, принятые по умолчанию. Здесь можно также

Обязательный параметр Раскрывающийся список функций

Кнопка сворачивания

Page 16: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

16

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

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

Контрольные вопросы 1. Область применения электронных таблиц. 2. Что является основным элементом электронных таблиц. 3. Как обозначаются ячейки в электронных таблицах? Указать расширенный

формат адреса ячейки. 4. Как присвоить собственное имя ячейки в Excel? 5. Как обозначается диапазон ячеек в электронных таблицах? Привести

примеры. 6. Сколько ячеек будет выделено при указании диапазона А3:С5 в Excel? 7. Как выделяются несмежные диапазоны ячеек в Excel? Привести пример. 8. Перечислить основные интерфейсные элементы окна MS Excel. Пояснить их

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

рации в любом приложении Windows. 10. Что такое формат ячейки в Excel и как его можно изменить? 11. Какие способы существуют в MS Excel, которые позволяют упростить и ус-

корить процесс ввода данных? 12. Где располагается маркер автозаполнения в MS Excel? Его назначение? 13. Как скопировать и переместить текущую ячейку в Excel? Перечислите не-

сколько способов. 14. Как заполнить выделенные ячейки в MS Excel выбранными последователь-

ностями? 15. Для чего используется ввод прогрессий в Excel? Как он выполняется? 16. С какого символа начинается формула в Excel и что может содержать

в себе? 17. Отличие абсолютной ссылки от относительной в Excel? 18. Как рассматриваются по умолчанию ссылки на ячейки в формулах MS

Excel? 19. Что является признаком абсолютной адресации в Excel? Какие виды абсо-

лютной адресации различают? Привести примеры.

Page 17: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

17

Тема 2. Введение в технологию баз данных

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

сфере деятельности. Они ведут учет товаров в супермаркетах и на складах, на-числяют зарплату в бухгалтериях и т. д. Невозможно представить себе деятель-ность современного предприятия или учреждения без использования автомати-зированной информационной системы (АИС). Эти системы составляют фунда-мент информационной деятельности во всех сферах, начиная с производства, управления финансами и телекоммуникациями и заканчивая управлением се-мейным бюджетом.

Массивы информации, накопленные в АИС, должны быть оптимальным образом организованы для их компьютерного хранения и обработки, должна обеспечиваться их целостность и непротиворечивость. Используя функции стандартных файловых систем, невозможно добиться нужной производитель-ности при решении подобных задач, поэтому все автоматизированные инфор-мационные системы опираются на СУБД – системы управления базами данных.

Любая АИС оперирует той или иной частью реального мира – предметной областью. Предметная область АИС «материализуется» в форме хранимой в памяти ЭВМ структурированной совокупности данных, которые характеризуют состав объектов предметной области, их свойства и взаимосвязи. Такое отра-жение предметной области принято называть базой данных (БД).

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

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

Системы управления базами данных появились в конце 60-х – начале 70-х годов. СУБД первого поколения были ориентированы на мэйнфрэймы, доми-нировавшие в то время. Возможности первых СУБД были ограниченными, они

Page 18: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

18

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

Основные понятия теории баз данных Объектом называется элемент информационной системы, сведения о ко-

тором хранятся в базе данных. Атрибут – это информационное отображение свойств объекта. Каждый

объект характеризуется некоторым набором атрибутов. Ключевым элементом данных называется такой атрибут (или группа атри-

бутов), который позволяет определить значения других элементов данных. Запись данных (англ. эквивалент record) – это совокупность значений свя-

занных элементов данных. Первичный ключ – это атрибут (или группа атрибутов), который уникаль-

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

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

• целостность и непротиворечивость данных, под которыми понимается как физическая сохранность данных, так и предотвращение неверного исполь-зования данных, поддержка допустимых сочетаний их значений, защита от структурных искажений и несанкционированного доступа;

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

Модели данных Набор принципов, определяющих организацию логической структуры

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

• допустимой организацией данных; • ограничениями целостности; • множеством допустимых операций. В теории систем управления базами данных выделяют модели трех основ-

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

древовидной структурой. Эта структура определяется как дерево, образованное попарными связями. На самом верхнем уровне дерева имеется один узел, назы-ваемый корнем. Все элементы связаны отношениями подчиненности и при этом

Page 19: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

19

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

Основное достоинство иерархической мо-дели – простота описания иерархических структур реального мира.

Типичным представителем семейства баз данных, основанных на иерархической модели, является Information Management System (IMS) фирмы IBM, первая версия которой появилась в 1968 году.

Концепция сетевой модели данных связа-на с именем Ч. Бахмана. Сетевой подход к организации данных является расширени-ем иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков (рис. 2.2). В ней эле-мент может быть связан с любым другим, без каких-либо ограничений. Сетевая БД состоит из набора записей, соответствую-

щих каждому экземпляру объекта предметной области и набора связей между ними. Так, например, информация об участии сотрудников в проектах органи-зации может быть представлена в сетевой БД (рис. 2.3). В данном примере се-тевая модель хорошо отражает то, что в проекте могут участвовать разные со-трудники, и в то же время сотрудник может участвовать в различных проектах.

Рис. 2.3. Пример сетевой структуры БД

Примером системы управления данными с сетевой организацией является Integrated Database Management System (IDMS) компании Cullinet Software Inc., разработанная в середине 70-х годов. Она предназначена для использования на «больших» вычислительных машинах.

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

Page 20: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

20

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

Концепции реляционной модели впервые были сформулированы в работах американского ученого Э. Ф. Кодда. Откуда происходит ее второе название – модель Кодда.

В реляционной модели объекты и взаимосвязи между ними пред-ставляются с помощью таблиц (рис. 2.4). Для ее формального оп-ределения используется фунда-ментальное понятие отношения. Собственно говоря, термин «реля-ционная» происходит от англий-ского relation – отношение.

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

столбец, первичный ключ. Все операции над реляционной базой данных сво-дятся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Таблица отражает тип объекта ре-ального мира (сущность), а каждая ее строка (кортеж) – конкретный объект (рис. 2.5). Например, таблица «Сотрудники отдела» содержит сведения обо всех сотрудниках отдела, каждая ее строка – набор значений атрибутов конкретного сотрудника. Значения конкретного атрибута выбираются из домена (domain) – множества всех возможных значений атрибута объекта. Имя столбца должно быть уникальным в таблице. Столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. Любая таблица должна иметь по крайней мере один столбец. В отличие от столбцов строки не имеют имен. Порядок их следования в таблице не определен, а количество логически не ог-раничено. Так как строки в таблице не упорядочены, невозможно выбрать строку по ее позиции – среди них не существует «первой» и «последней».

Номерпропуска

ФИО Доверенность Телефон

2357

2398

2315

2365

Уваров Михаил Николаевич

Сидоров Петр Алексеевич

Петренко Роман Иванович

Николаев Борис Михайлович

начальник

главный инженер

инженер

инженер

53-22

53-12

53-33

53-33

Атрибуты

Первичныйключ

Кортежи(строки)

Сотрудники отдела

Название таблицы

Рис. 2.5. Отношение реляционной базы данных

Page 21: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

21

Любая таблица имеет один или несколько столбцов, значения в которых однозначно идентифицируют каждую ее строку. Такой столбец (или комбина-ция столбцов) называется первичным ключом. В таблице «Сотрудники отдела» первичным ключом служит столбец «Номер пропуска». В таблице не должно быть строк, имеющих одно и то же значение первичного ключа. Если таблица удовлетворяет этому требованию, она называется отношением.

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

Таблицы невозможно хранить и обрабатывать, если в базе данных отсутст-вуют «данные о данных» (метаданные), например, описатели таблиц, столбцов и т. д. Метаданные также представлены в табличной форме и хранятся в слова-ре данных. Помимо таблиц в БД могут храниться и другие объекты, такие как экранные формы, шаблоны отчетов и прикладные программы, работающие с информацией базы данных.

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

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

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

Page 22: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

22

и нормальные формы более высоких порядков. Однако они не получили широ-кого распространения на практике.

В теории реляционных баз данных принято выделять следующую последо-вательность нормальных форм:

1) первая нормальная форма (1NF); 2) вторая нормальная форма (2NF); 3) третья нормальная форма (3NF); 4) нормальная форма Бойса–Кодда (BCNF); 5) четвертая нормальная форма (4NF); 6) пятая нормальная форма (5NF). Каждой нормальной форме соответствует некоторый набор ограничений.

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

Говорят, что отношение находится в первой нормальной форме, если все его атрибуты являются простыми.

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

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

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

1) дату заказа; 2) номер заказа; 3) артикул (уникальный номер единицы товара); 4) наименование товара; 5) цену заказанного товара.

Дата Номер заказа

Артикул Наименование Цена

01.09.98 1 1672 Процессор Pentium 233 MMX 1638 01.09.98 1 5301 M/B SOYO SY-5EAS ETEQ-6618 300 01.09.98 1 1611 DIMM 32 Mb 420 01.09.98 1 58 SVGA PCI 1Mb S3 TRIO 64+ 192 01.09.98 2 1672 Процессор Pentium 233 MMX 1638 01.09.98 2 1611 DIMM 32 Mb 420 02.09.98 1 58 SVGA PCI 1Mb S3 TRIO 64+ 192 02.09.98 1 3417 Процессор Pentium II 333 3876 02.09.98 1 1611 DIMM 32 Mb 420 02.09.98 2 2660 SVGA AGP S3 86C357 396

Page 23: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

23

Нам необходимо нормализовать приведенную ниже таблицу. Заметим, что она уже находится в 1NF, так как все ее атрибуты являются простыми (атомар-ны). В СУБД дата – неделимый тип данных, поэтому, хотя дата заказа и состоит из 3 чисел, это – атомарный атрибут.

В одном заказе может оказаться несколько одинаковых наименований то-вара, например, можно заказать два одинаковых процессора, поэтому составной атрибут «Дата-НомерЗаказа-Артикул» не может быть первичным ключом. Для того чтобы выполнить требования второй нормальной формы, надо доба-вить к таблице атрибут, который бы однозначно идентифицировал каждую единицу товара, входящую в заказ. Назовем такой атрибут «ID». Вот приведен-ное выше отношение в 2NF.

ID Дата Номер заказа

Артикул Наименование Цена

1 01.09.98 1 1672 Процессор Pentium 233 MMX 1638 2 01.09.98 1 5301 M/B SOYO SY-5EAS ETEQ-

6618 300

3 01.09.98 1 1611 DIMM 32 Mb 420 4 01.09.98 1 58 SVGA PCI 1Mb S3 TRIO 64+ 192 5 01.09.98 2 1672 Процессор Pentium 233 MMX 1638 6 01.09.98 2 1611 DIMM 32 Mb 420 7 02.09.98 1 58 SVGA PCI 1Mb S3 TRIO 64+ 192 8 02.09.98 1 3417 Процессор Pentium II 333 3876 9 02.09.98 1 1611 DIMM 32 Mb 420 10 02.09.98 2 2660 SVGA AGP S3 86C357 396

В этой таблице все атрибуты зависят от атрибута ID, но, кроме того, есть

зависимость «Наименования» и «Цены» от «Артикула». Требование независи-мости атрибутов отношения не выполняются (3NF). Для приведения отношения в третью нормальную форму, таблицу требуется разбить на три отношения.

Артикул Наименование

1672 Процессор Pentium 233 MMX 5301 M/B SOYO SY-5EAS ETEQ-6618 1611 DIMM 32 Mb 58 SVGA PCI 1Mb S3 TRIO 64+ 3417 Процессор Pentium II 333 2660 SVGA AGP S3 86C357

Артикул Цена 1672 1638 5301 300 1611 420 58 192 3417 3876 2660 396

ID Дата Номер заказа

Артикул

1 01.09.98 1 1672 2 01.09.98 1 5301 3 01.09.98 1 1611 4 01.09.98 1 58 5 01.09.98 2 1672 6 01.09.98 2 1611 7 02.09.98 1 58 8 02.09.98 1 3417 9 02.09.98 1 1611 10 02.09.98 2 2660

Page 24: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

24

Нормализация отношений – не пустая трата времени. Пусть в приведенном примере требуется изменить «Наименование» с «DIMM 32 Mb» на «DIMM 32 Mb SDRAM». В ненормализованном отношении пришлось бы искать и редак-тировать все строки, содержащие это наименование, а в нормализованной БД изменяется только одна строка одного отношения.

Подробнее с процессом нормализации и с требованиями нормальных форм старше третьей (3NF) можно ознакомиться в литературе по теории реляционных БД.

Основным достоинством реляционной модели является ее простота. Имен-но благодаря ей она положена в основу подавляющего большинства реально работающих СУБД.

Средства ускорения доступа к данным Современным СУБД приходится оперировать огромными массивами ин-

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

В современных СУБД используются два основных метода ускорения дос-тупа к данным: индексирование и хеширование. Эти методы обеспечивают лучшее по сравнению с остальными время поиска и модификации таблиц БД.

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

Индекс базы данных – не листы бумаги, это – специальная структура дан-ных, создаваемая автоматически или по запросу пользователя. В целом работа с ним выглядит так же, как и с предметным указателем. Разница лишь в том, что СУБД все делает автоматически, пользователь может даже не знать, что она использует индекс. В книге приводится предметный указатель слов, в БД для формирования индекса может быть использован любой атрибут отношения, в том числе и составной. В индексе значения атрибута хранятся упорядоченно (по возрастанию или убыванию), каждому значению соответствует указатель на

Page 25: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

25

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

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

Еще один интересный подход, применяемый для повышения эффективно-сти доступа к данным, – хеширование (hashing). Для метода хеширования, к со-жалению, нет житейского аналога, поэтому объяснить его «на пальцах» вряд ли получится. Основная идея хеширования – организация ассоциативной памяти для хранения строк таблицы с определением места строки в таблице по значе-ниям одного или нескольких ее ключевых атрибутов. Место строки вычисляет-ся хэш-функцией, аргументы которой – значения атрибутов, а результат – целое число в диапазоне номеров строк таблицы. Идеальная хэш-функция должна да-вать разные значения номеров строк для разных ключевых атрибутов. Однако построить такую хэш-функцию – дело трудоемкое и не всегда возможное.

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

f(k) = k mod p, где f – хэш-функция, k – целочисленный атрибут, а р – простое число. Если ключевой атрибут – строка символов, то для вычисления хэш-

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

Доступ к данным при хешировании производится так. В начале работы с БД таблица состоит из пустых строк. Когда строка с данными заносится в таб-лицу, вычисляется значение хэш-функции для ее атрибутов, и результат тракту-ется как номер строки отношения, в которую она должна быть записана. Если эта строка уже занята, то по некоторому алгоритму производится провер-ка следующих строк таблицы до тех пор, пока не будет обнаружено свободное место (при этом, как правило, считается, что таблица имеет кольцевую струк-туру). В это место и помещается записываемая строка. Для поиска данных ис-пользуется аналогичный алгоритм. Сначала вычисляется значение хэш-функции для требуемого значения ключевого атрибута и проверяется строка таблицы, номер которой вычислен хэш-функцией. Если значение атрибута, по которому происходит доступ, соответствует значению ключа строки, то поиск заканчивается. В противном случае проверяются следующие строки таблицы до

Page 26: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

26

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

Если таблица заполнена не более чем на 60 %, то для размещения в ней новой строки необходимо проверить в среднем не более двух ячеек. Иногда для устранения конфликтов (коллизий), возникающих, если хэш-функция выдает номер занятой строки, используют не линейный просмотр, а более сложные ме-тоды. Скорость обращения к данным при этом возрастает.

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

Язык запросов База данных бесполезна, если отсутствуют средства доступа к информации

в ней. Для получения информации из БД пользователи направляют СУБД-запросы. СУБД обрабатывает их и отправляет результаты обработки пользователям. Запросы формулируются на специальном «языке запросов». Фактическим стандартом такого языка для современных реляционных СУБД стал SQL (Structured Query Language – структурный язык запросов).

Этот язык имеет официальный стандарт, последняя версия которого была принята ANSI и ISO в 1992 году. Большинство разработчиков СУБД придержи-ваются этого стандарта. Тем не менее они часто расширяют его для реализации специальных возможностей обработки данных. SQL – это не язык программи-рования в традиционном смысле. Это язык запросов к базе данных. С его по-мощью можно сформулировать, какие данные требуется получить, но невоз-можно определить, как это следует сделать. На SQL не пишутся программы – в нем отсутствуют многие операторы процедурных языков программирования, например, операторы проверки условия (if...then...else), операторы циклов и др.

В составе SQL могут быть выделены следующие группы инструкций: • язык описания данных – DDL (Data Definition Language); • язык манипулирования данными – DML (Data Manipulation Language); • язык управления транзакциями. Инструкции DDL (табл. 2.1) предназначены для создания, изменения и

удаления объектов базы данных.

Таблица 2.1. Инструкции языка определения данных (DDL)

Инструкция Назначение

CREATE Создание новых объектов (таблиц, полей, индексов и т. д.) DROP Удаление объектов ALTER Изменение объектов

Инструкции DML (табл. 2.2) позволяют выбирать данные из таблиц, а так-же добавлять, удалять и изменять их.

Page 27: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

27

Таблица 2.2. Инструкции языка манипулирования данными (DML)

Инструкция Назначение

SELECT Выбрать данные из БД INSERT Добавить данные в БД UPDATE Обновить данные в БД DELETE Удалить данные из БД

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

Третьей составной частью SQL является язык управления транзакциями. Транзакция – это логически завершенная единица работы, содержащая одну или более элементарных операций обработки данных. Все действия, состав-ляющие транзакцию, должны либо выполниться полностью, либо полностью не выполниться. Инструкции языка управления транзакциями приведены в табл. 2.3.

Таблица 2.3. Инструкции языка управления транзакциями

Инструкция Назначение

COMMIT Зафиксировать текущую транзакцию SAVEPOINT Начало транзакции ROLLBACK Прервать текущую транзакцию

В большинстве СУБД элементарные команды, составляющие тело тран-закции, выполняются над некоторой буферной копией данных, и только если их удается успешно довести до конца, происходит окончательное обновление ос-новной базы. Транзакция начинается от точки сохранения, задаваемой инструк-цией SAVEPOINT, и может быть завершена по команде COMMIT или прервана по команде ROLLBACK (откат). Также в современных системах управления данными предусмотрены средства автоматического отката транзакций при воз-никновении системных сбоев. Таким образом, механизм управления транзак-циями является важнейшим инструментом поддержания целостности данных.

Программные системы управления базами данных Кратко остановимся на конкретных программных продуктах, относящихся

к классу СУБД. На самом общем уровне все СУБД можно разделить на: • профессиональные, или промышленные; • персональные (настольные). Профессиональные (промышленные) СУБД представляют собой про-

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

Page 28: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

28

• возможность организации совместной параллельной работы большого количества пользователей;

• масштабируемость, то есть возможность роста системы пропорционально расширению управляемого объекта;

• переносимость на различные аппаратные и программные платформы; • устойчивость по отношению к сбоям различного рода, в том числе нали-

чие многоуровневой системы резервирования хранимой информации; • обеспечение безопасности хранимых данных и развитой структурирован-

ной системы доступа к ним. Промышленные СУБД к настоящему моменту имеют уже достаточно бо-

гатую историю развития. В частности, можно отметить, что в конце 70-х – на-чале 80-х годов в автоматизированных системах, построенных на базе больших вычислительных машин, активно использовалась СУБД Adabas. В настоящее время характерными представителями профессиональных СУБД являются та-кие программные продукты, как Oracle, DB2, Sybase, Informix, Ingres, Progress.

Основоположниками СУБД Oracle стала группа американских разработчи-ков (Ларри Эллисон, Роберт Майнер и Эдвард Оутс), которые более двадцати лет тому назад создали фирму Relational Software Inc. и поставили перед собой задачу создать систему, на практике реализующую идеи, изложенные в работах Э. Ф. Кодда и К. Дж. Дейта. Результатом их деятельности стала реализация пе-реносимой реляционной системы управления базами данных с базовым языком обработки SQL. В 1979 году заказчикам была представлена версия Oracle для мини-компьютеров PDP-11 фирмы DEC сразу для нескольких операционных систем: RSX-11, IAS, RSTS и UNIX. Чуть позже Oracle был перенесен на ком-пьютеры VAX под управлением VAX VMS. Значительная часть кода была на-писана на ассемблере, и поэтому процесс переноса системы на новую платфор-му требовал значительных усилий. Основным отличием Oracle очередной, третьей версии было то, что она была полностью написана на языке Си. Такое решение обеспечивало переносимость системы на многие новые платформы, в частности, на различные клоны UNIX. Второй важной особенностью новой (1983 г.) версии была поддержка концепции транзакции. Примерно в это же время фирма получила новое имя – Oracle Corporation – и заняла лидирующее место на рынке производителей СУБД. Четвертая версия Oracle характеризова-лась расширением перечня поддерживаемых платформ и операционных систем. Oracle был перенесен как на большие ЭВМ фирмы IBM (мэйнфреймы), так и на персональные компьютеры, работающие под управлением MS DOS. Именно в четвертой версии был сделан важный шаг в развитии технологии поддержки целостности баз данных. Для многопользовательских систем было предложено оригинальное решение Oracle поддержки «непротиворечивости чтения». В пя-той версии была впервые реализована СУБД с архитектурой «клиент–сервер». Последующие версии СУБД Oracle были ориентированы на построение круп-номасштабных систем обработки транзакций, изменение методов реализации систем ввода/вывода, буферизации, подсистем управления параллельным дос-

Page 29: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

29

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

Персональные системы управления данными – это программное обеспече-ние, ориентированное на решение задач локального пользователя или компакт-ной группы пользователей и предназначенное для использования на микро-ЭВМ (персональном компьютере). Это объясняет и их второе название – на-стольные. Определяющими характеристиками настольных систем являются:

• относительная простота эксплуатации, позволяющая создавать на их ос-нове работоспособные приложения как «продвинутым» пользователям, так и тем, чья квалификация невысока;

• относительно ограниченные требования к аппаратным ресурсам. Исторически первой среди персональных СУБД, получивших массовое

распространение, стала Dbase фирмы Ashton-Tate (впоследствии права на нее перешли к фирме Borland, а с 1999 году данная программа поддерживается фирмой dBASE Inc.). В дальнейшем серия реляционных персональных СУБД пополнилась такими продуктами, как FoxBase/FoxPRO (Fox Software, в даль-нейшем – Microsoft), Clipper (Nantucket, затем – Computer Associates), Paradox (Borland, на настоящий момент правами владеет фирма Corel), Access (Microsoft), Approach (Lotus).

Завоевавшие широкую популярность в России системы Dbase, FOXPRO и Clipper работали с таблицами данных, размещавшихся в файлах, имевших рас-ширение *.dbf (термин dbf-формат стал общепринятым). Впоследствии семей-ство этих баз данных получило интегрированное наименование Xbase.

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

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

• наличие инструментов создания объектов базы данных в режиме диалога: Experts в Paradox, Wizards в Access, Assistants в Approach;

• наличие развитого инструментария создания программных расширений в рамках единой среды СУБД: язык разработки приложений PAL в Paradox, VBA (Visual Basic for Applications) в Access, Lotus Script в Approach;

• встроенная поддержка универсальных языков управления данными, на-пример SQL или QBE (Query By Example).

Структура простейшей базы данных Сразу поясним, что если в базе нет никаких данных (пустая база), то это

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

Page 30: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

30

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

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

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

Объекты базы данных Кроме таблиц база данных может содержать и другие типы объектов.

Привести полную классификацию возможных объектов баз данных затрудни-тельно, поскольку каждая система управления базами данных может реализо-вать свои типы объектов. Однако основные типы объектов мы можем рассмот-реть на примере СУБД Microsoft Access. В версии Microsoft Access 2000 эта СУБД позволяет создавать и использовать объекты семи различных типов.

Таблицы. Как мы уже говорили, это основные объекты любой базы дан-ных. Во-первых, в таблицах хранятся все данные, имеющиеся в базе, а во-вторых, таблицы хранят и структуру базы (поля, их типы и свойства).

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

Начинающие пользователи не сразу понимают роль запросов, поскольку все те же операции можно делать и с таблицами. Да, действительно, это так, но есть соображения удобства (в первую очередь быстродействия) и соображения безопасности.

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

Page 31: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

31

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

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

Проведена сортировка по цене Проведена сортировка по имени поставщика

Рис. 2.6. Два запроса, сформированные на основе одной таблицы

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

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

Формы. Если запросы – это специальные средства для отбора и анализа данных, то формы – это средства для ввода данных, хотя с их помощью данные можно и просматривать. Смысл их в том, чтобы предоставить пользователю

Page 32: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

32

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

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

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

Страницы. Это специальные объекты баз данных, реализованные в по-следней версии СУБД Microsoft Access (Access 2000). Правда, более корректно их называть страницами доступа к данным. Физически это особый объект, вы-полненный в коде HTML, размещаемый на Web-странице и передаваемый кли-енту вместе с ней. Сам по себе этот объект не является базой данных, но содер-жит компоненты, через которые осуществляется связь переданной Web-страницы с базой данных, остающейся на сервере. Пользуясь этими компонен-тами, посетитель Web-узла может просматривать записи базы в полях страницы доступа. Таким образом, страницы доступа к данным осуществляют интерфейс между клиентом, сервером и базой данных, размещенной на сервере. Эта база данных не обязательно должна быть базой данных Microsoft Access. Страницы доступа, созданные средствами Microsoft Access, позволяют работать также с базами данных Microsoft SQL Server.

Макросы и модули. Эти категории объектов предназначены как для авто-матизации повторяющихся операций при работе с системой управления базами данных, так и для создания новых функций путем программирования. В СУБД Microsoft Access макросы состоят из последовательности внутренних команд СУБД и являются одним из средств автоматизации работы с базой. Модули соз-даются средствами внешнего языка программирования, в данном случае языка Visual Basic for Applications. Это одно из средств, с помощью которых разра-ботчик базы может заложить в нее нестандартные функциональные возможно-сти, удовлетворить специфические требования заказчика, повысить быстродей-ствие системы управления, а также уровень ее защищенности.

Page 33: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

33

Режимы работы с базами данных Обычно с базами данных работают две категории исполнителей. Первая

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

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

Соответственно, система управления базами данных имеет два режима ра-боты: проектировочный и пользовательский. Первый режим предназначен для создания или изменения структуры базы и создания ее объектов. Во втором ре-жиме происходит использование ранее подготовленных объектов для наполне-ния базы или получения данных из нее.

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

ставляет, можно приступать к созданию структуры базы, то есть, структуры ее основных таблиц.

1. Работа начинается с составления генерального списка полей – он может насчитывать сотни позиций.

2. В соответствии с тем, какие данные размещаются в каждом поле, опре-деляют наиболее подходящий тип для каждого поля.

3. Далее распределяют поля генерального списка по базовым таблицам. На первом этапе распределение производят по функциональному признаку. Принцип разделения очень прост: обеспечить, чтобы ввод данных в одну таб-лицу производился в рамках одного подразделения, а еще лучше – на одном ра-бочем месте.

Наметив столько таблиц, сколько подразделений (рабочих мест) охватыва-ет база данных, приступают к дальнейшему делению таблиц. Критерием необ-ходимости деления является факт множественного повтора данных в соседних записях. На рис. 2.7 показана таблица, у которой в поле Адрес наблюдается по-втор данных. Это явное свидетельство того, что таблицу надо поделить на две взаимосвязанных таблицы и, возможно, заполнять эти таблицы на разных рабо-чих местах.

4. В каждой из таблиц намечают ключевое поле. В качестве такового выби-

Page 34: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

34

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

Если в списке полей таблицы нет такого поля, которое можно было бы ис-пользовать как ключевое, его можно создать искусственно. Например, можно ввести дополнительное поле типа Счетчик – оно не может содержать повто-ряющиеся данные по определению.

Рис. 2.7. Если данные в поле начинают повторяться, то таблицу стоит поделить

Есть еще прием объединения двух не уникальных полей в одно уникаль-ное. Так, например, в таблице расписания занятий время занятия не уникальное поле, поскольку в одно и то же время занятия идут у разных групп. Номер ау-дитории тоже не уникальное поле, поскольку в одной аудитории могут зани-маться разные группы. Но если объединить время занятия с номером аудито-рии, то такое составное поле станет уникальным, ведь в одно и то же время в одной аудитории две группы заниматься не могут. С таким искусственным по-лем может быть связан номер группы студентов, занимающихся в данное время в данной аудитории, и фамилия преподавателя, который этим занятием руководит.

5. С помощью карандаша и бумаги расчерчивают связи между таблицами. На рис. 2.8 показан пример взаимосвязи между группой таблиц, входящих в ба-зу данных компании, занимающейся трансляцией спутниковых телевизионных

Page 35: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

35

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

Рис. 2.8. Схема связей между таблицами

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

На схеме данных общие поля соединены линиями связи. С одной стороны эта линия всегда маркируется знаком «1», с другой стороны – либо знаком «1» (связь один к одному), либо значком «бесконечность» (связь один ко многим). Понятно, что если связываются ключевые поля, то это всегда связь один к од-ному, а если ключевое поле связано с неключевым, то это связь один ко многим.

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

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

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

Page 36: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

36

Контрольные вопросы 1. Что означает аббревиатура СУБД? 2. Что принято называть базой данных? 3. Для чего предназначено СУБД? 4. Что называется объектом, атрибутом и ключевым элементом в теории БД? 5. Что такое первичный и вторичный ключи в БД? 6. Каким принципам должны подчиняться процедуры хранения данных в БД? 7. Перечислите модели данных в теории БД? 8. Охарактеризуйте иерархическую модель данных в СУБД. 9. Охарактеризуйте сетевую модель данных в СУБД. 10. Охарактеризуйте реляционную модель данных в СУБД. 11. Достоинства и недостатки СУБД, основанные на иерархической и сетевой

моделях. 12. Как называют столбец и строку в таблице реляционной СУБД? 13. Охарактеризуйте первую, вторую и третью нормальную формы в СУБД. 14. Какие средства существуют в СУБД для ускорения доступа к данным? 15. Какой язык используется в реляционных СУБД для доступа к информа-

ции в ней? 16. Какие группы инструкций могут быть выделены в составе SQL? 17. Для чего предназначен язык описания данных? 18. Для чего предназначен язык манипулирования данными? 19. Что такое транзакция в теории БД? 20. На какие классы можно разделить все СУБД? 21. Охарактеризуйте профессиональные СУБД. Назовите их. 22. Охарактеризуйте персональные СУБД. Назовите их. 23. Что значит задать структуру БД? 24. Назовите объекты БД. 25. Охарактеризуйте таблицы БД. 26. Охарактеризуйте запросы БД. Их назначение. 27. Охарактеризуйте формы БД. Их назначение. 28. Охарактеризуйте отчеты БД. Их назначение. 29. Охарактеризуйте макросы и модули БД. Их назначение.

Page 37: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

37

Тема 3. Этапы создания программ

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

Программирование представляет собой сферу действий, направленную на создание программ. Программирование может рассматриваться как наука и как искусство.

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

В настоящее время при создании программных продуктов возникает ряд проблем, основными из которых являются следующие:

1. Быстрая смена вычислительной техники и алгоритмических языков; 2. Нестыковка ЭВМ друг с другом (VAX и IBM); 3. Отсутствие полного взаимопонимания между заказчиком и исполните-

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

при разработке небольших учебных программ не все элементы этой технологии следует отрабатывать (да это и не всегда возможно no-существу), однако само ее существование должно быть осознано.

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

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

1) постановка задачи; 2) проектирование программы; 3) построение модели; 4) разработка алгоритма; 5) написание программы; 6) отладка программы; 7) тестирование программы; 8) документирование. Кратко остановимся на каждом из этих этапов. Чтобы приступить к решению задачи необходимо точно ее сформулиро-

вать. В первую очередь, это означает определение исходных и выходных дан-ных, т. е. ответы на вопросы: а) что дано; б) что нужно найти. Дальнейшая де-

Page 38: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

38

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

• как определить решение; • каких данных не хватает и все ли они нужны; • какие сделаны допущения и т. п. Таким образом, кратко можно сказать, что на этапе постановки задачи

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

тема в конечном виде (замысел), описываются функции системы, характери-стики интерфейса.

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

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

Методы проектирования архитектуры делятся на две группы: 1) ориентированные на обработку 2) ориентированные на данные. Методы, ориентированные на обработку, включают следующие общие

идеи. а) Модульное программирование. Основные концепции: • каждый модуль реализует единственную независимую функцию; • имеет единственную точку входа/выхода; • размер модуля минимизируется; • каждый модуль разрабатывается независимо от других модулей; • система в целом построена из модулей. Исходя из этих принципов каждый модуль тестируется отдельно, затем по-

сле кодирования и тестирования происходит их интеграция и тестируется вся система.

б) Функциональная декомпозиция. Подобна стратегии «разделяй и управляй». Практически является декомпо-

зицией в форме пошаговой детализации и концепции скрытия информации.

Page 39: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

39

в) Проектирование с использованием потока данных. Использует поток данных как генеральную линию проектирования

программы. Содержит элементы структурного проектирования сверху-вниз с пошаго-

вой детализацией. г) Технология структурного анализа проекта. Основана на структурном анализе с использованием специальных графи-

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

Методы проектирования, основанные на использовании структур дан-ных, описаны ниже.

а) Методология Джексона. Здесь структура данных – ключевой элемент в построении проекта. Струк-

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

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

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

г) Объектно-ориентированная методология проектирования. Основана на концепции упрятывания информации и абстрактных типов

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

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

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

При дедуктивном подходе (рис. 3.1) рассматривается частный случай об-щеизвестной фундаментальной модели. Здесь при заданных предположениях известная модель приспосабливается к условиям моделируемого объекта. Например, можно построить модель свободно падающего тела на основе из-вестного закона Ньютона ma = mg – Fсопр и в качестве допустимого приближе-ния принять модель равноускоренного движения для малого промежутка вре-мени.

Page 40: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

40

Теория Информация о моделируемой системе

Общая модель Конкретная модель

Рис. 3.1. Схема построения модели при дедуктивном способе

Индуктивный способ (рис. 3.2) предполагает выдвижение гипотез, деком-позицию сложного объекта, анализ, затем синтез. Здесь широко используется подобие, аналогичное моделирование, умозаключение с целью формирования каких-либо закономерностей в виде предположений о поведении системы.

Гипотеза Модель

Моделируемая система

Рис. 3.2. Схема построения модели при индуктивном способе

Технология построения модели при индуктивном способе: 1) эмпирический этап

• умозаключение; • интуиция; • предположение; • гипотеза.

2)постановка задачи для моделирования; 3)оценки; количественное и качественное описание; 4)построение модели. Разработка алгоритма – самый сложный и трудоемкий процесс, но и са-

мый интересный в творческом отношении. Выбор метода разработки зависит от постановки задачи, ее модели.

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

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

Page 41: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

41

распространение специализированные пакеты, позволяющие решать многие за-дачи (Mathcad, Autocad и т. п.).

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

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

Структурное программирование основано на использовании блок-схем, формируемых с помощью управляющих структурных элементов.

Выделяют три базовых структурных элемента (управляющие структуры): композицию, альтернативу, итерацию.

Композиция – это линейная конструкция алгоритма, составленная из по-следовательно следующих друг за другом функциональных вершин:

begin S1; S2; end. Альтернатива – это конструкция ветвления, имеющая предикатную вер-

шину. Конструкция ветвления в алгоритмах может быть представлена в виде развилки:

if B then S1 else S2 и неполной развилки: if B then S1. Итерация – это циклическая конструкция алгоритма, которая, вообще го-

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

while B do S1 и с постусловием: repeat S1 until B. Каждая из рассмотренных структур имеет один вход и один выход. Поэто-

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

Процесс структурного программирования обычно начинается с разработки блок-схемы.

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

Для иллюстрации технологии структурного программирования сверху-вниз рассмотрим пример.

Пример. Технология разработки программы решения квадратного уравнения.

На рис. 3.3 проиллюстрирована пошаговая детализация процесса построе-ния алгоритма. Заметим, что для начального шага разработки программы имеем

Page 42: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

42

в качестве входных данных коэффициенты а, b, с квадратного уравнения ах2 + bх + с = 0, а на выходе – значения двух корней х1, х2.

Начало

Решение кв. уравнения ax2+bx+c=0

Конец

Начало

a,b,c

Формула нахождения корней x1, x2

x1, x2

Конец

Начало

a,b,c

Формула нахождения

дискриминанта

D<0

Корней нет

Формула нахождения корней x1, x2

x1, x2

Конец

Да Нет

Рис. 3.3. Пошаговая детализация построения алгоритма

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

На этапе написания программы по разработанному алгоритму на вы-бранном языке программирования составляется программа.

Отладка программы – это процесс обнаружения и исправления ошибок. Программные ошибки можно разделить на два класса: синтаксические (синтак-сис языка программирования) и алгоритмические (логические). Синтаксические ошибки выявляются в процессе компилирования программы – это наиболее простые с точки зрения исправления ошибки. Алгоритмические ошибки про-граммы выявить гораздо труднее: программа работает, а результат выдает не-

Page 43: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

43

правильный. Для обнаружения ошибок этого класса требуется этап тестирова-ния программы.

Тестирование – это процесс исполнения программ с целью выявления (обнаружения) ошибок.

Существуют различные способы тестирования программ. Тестирование программы как «черного ящика» (стратегия «черного ящи-

ка» определяет тестирование с анализом входных данных и результатов работы программы). Критерием исчерпывающего входного тестирования является ис-пользование всех возможных наборов входных данных.

Тестирование программы как «белого ящика» заключается в стратегии управления логикой программы, позволяет использовать ее внутреннюю струк-туру. Критерием выступает исчерпывающее тестирование всех маршрутов и управляющих структур программы.

Разумная и реальная стратегия тестирования – сочетание моделей «черно-го» и «белого ящиков».

Принципы тестирования: • описание предполагаемых значений выходных данных или результатов

должно быть необходимой частью тестового набора; • тесты для неправильных и непредусмотренных входных данных следует

разрабатывать так же тщательно, как для правильных и предусмотренных; • необходимо проверять не только делает ли программа то, для чего она

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

рования» без компьютера на основе инспекции и сквозного просмотра (тести-рование «всухую»).

Инспекция и сквозной просмотр – это набор процедур и приемов обнару-жения ошибок при чтении текста.

Основные типы ошибок, встречающихся при программировании: • обращения к переменным, значения которым не присвоены или не

инициализированы; • выход индексов за границы массивов; • несоответствие типов или атрибутов переменных величин; • явные или неявные проблемы адресации памяти; • ошибочные передачи управления; • логические ошибки. При проектировании процедуры тестирования предусматривают серии

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

Page 44: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

44

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

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

В процессе отладки программы используют метод грубой силы – исполь-зование выводов промежуточных данных по всей программе (трассировка) или использование автоматических средств. Например, в Турбо-Паскале имеется в наличии мощный аппарат автоматической отладки программ (режим DEBUG).

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

Есть золотое правило программистов – оформляй свои программы в том виде, в каком бы ты хотел видеть программы, написанные другими. К каждому конечному программному продукту необходимо документированное сопро-вождение в виде помощи (help), файлового текста (readme.txt).

Контрольные вопросы 1. Перечислите этапы создания программ. 2. Что выполняется на этапе постановки задачи? 3. Что представляет собой декомпозиция? 4. Какие принципы используются на этапе построения модели? 5. На каких принципах основано структурное программирование? 6. Какие базовые структурные элементы выделяют в структурном програм-

мировании? 7. Какие две формы итерации (как элемент структурного программирования)

вы знаете? 8. Что собой представляет идея структурного программирования сверху-

вниз? 9. Что собой представляет идея структурного программирования снизу-

вверх? 10. Что такое отладка программы? 11. Какие классы программных ошибок вы знаете и когда они выявляются? 12. Назначение тестирования программы? 13. Какие способы тестирования вы знаете? 14. Чем отличается стратегия «белого ящика» в тестировании от стратегии

«черного ящика»?

Page 45: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

45

Тема 4. Системы и языки программирования

Системы программирования Системы программирования – это комплекс инструментальных программ-

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

В настоящее время разработка любого системного и прикладного про-граммного обеспечения осуществляется с помощью систем программирования, в состав которых входят:

трансляторы с языков высокого уровня; средства редактирования, компоновки и загрузки программ; макроассемблеры (машинно-ориентированные языки); отладчики машинных программ. Системы программирования, как правило, включают в себя: текстовый редактор (Edit), осуществляющий функции записи и редакти-

рования исходного текста программы; загрузчик программ (Load), позволяющий выбрать из директория нуж-

ный текстовый файл программы; запускатель программ (Run), осуществляющий процесс выполнения

программы; компилятор (Compile), предназначенный для компиляции или интерпре-

тации исходного текста программы в машинный код с диагностикой синтакси-ческих и семантических (логических) ошибок;

отладчик (Debug), выполняющий сервисные функции по отладке и тес-тированию программы;

диспетчер файлов (File), предоставляющий возможность выполнять опе-рации с файлами: сохранение, поиск, уничтожение и т. п.

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

обучении программированию, получили системы программирования «Турбо» (Turbo) фирмы Borland, ядром которых являются трансляторы с языков про-граммирования Бейсик, Паскаль, Си, Пролог и др. Интерфейс Турбо-оболочки для любых систем программирования внешне совершенно одинаков и предос-тавляет пользователю стандартный набор функций и команд.

Технология разработки программ с использованием популярной системы программирования Турбо-Паскаль 7 будет рассмотрена позже. В подобных ин-тегрированных системах программирования сделана попытка предоставить разработчику программ максимум сервисных возможностей.

Page 46: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

46

Классификация языков программирования На заре компьютерной эры машинный код был единственным средством

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

Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные (см. рис. 4.1).

Процедурные (или алгоритмические) программы представляют из себя систему предписаний для решения конкретной задачи. Роль компьютера сво-дится к механическому выполнению этих предписаний.

Процедурные языки разделяют на языки низкого и высокого уровня. Разные типы процессоров имеют разные наборы команд. Если язык про-

граммирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. Имеется в виду, что операторы языка близки к машинному коду и ориентиро-ваны на конкретные команды процессора.

Языки программирования

Непроцедурные

Высокого уровня (машинно-

независимые)

Объектно-ориентированные

Декларативные

Процедурные

Низкого уровня (машинно-зависимые)

Ассемблер Фортран, Бейсик, Паскаль, Си (машинно-ориентированный)

Си++, Visual Basic, Delphi, Java

Логические Функцио-нальные

Лисп Пролог

Рис. 4.1. Общая классификация языков программирования

Языки низкого уровня (машинно-ориентированные) позволяют создавать

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

Языком низкого уровня (машинно-ориентированным) является Ассемблер, который просто представляет каждую команду машинного кода, но не в виде

Page 47: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

47

чисел, а с помощью условных символьных обозначений, называемых мнемониками.

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

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

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

Работа всех трансляторов строится по одному из двух принципов: интер-претация или компиляция.

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

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

При компиляции процессы трансляции и выполнения разделены во време-ни: сначала исходная программа полностью переводится на машинный язык (после чего наличие транслятора в оперативной памяти становится ненужным), а затем оттранслированная программа может многократно исполняться. Следо-вательно, для одной и той же программы трансляция методом компиляции обеспечивает более высокую производительность вычислительной системы при сокращении требуемой оперативной памяти.

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

Page 48: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

48

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

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

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

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

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

При использовании декларативного языка программист указывает исход-ные информационные структуры, взаимосвязи между ними и то, какими свой-ствами должен обладать результат. При этом процедуру его получения («алго-ритм») программист не строит (по крайней мере, в идеале). В этих языках от-сутствует понятие «оператор» («команда»). Декларативные языки можно под-

Page 49: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

49

разделить на два семейства – логические (типичный представитель – Пролог) и функциональные (Лисп).

Охарактеризуем наиболее известные языки программирования. 1. Фортран (FORmula TRANslating system – система трансляции формул);

старейший и по сей день активно используемый в решении задач математиче-ской ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач

2. Бейсик (Beginner's All-purpose Symbolic Instruction Code – универсаль-ный символический код инструкций для начинающих); несмотря на многие не-достатки и изобилие плохо совместимых версий – самый популярный по числу пользователей. Широко употребляется при написании простых программ.

3. Алгол (ALGOrithmic Language – алгоритмический язык); сыграл боль-шую роль в теории, но для практического программирования сейчас почти не используется.

4. ПЛ/1 (PL/1 Programming Language – язык программирования первый); многоцелевой язык; сейчас почти не используется.

5. Паскаль (Pascal – назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70-х годов швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако качества его в совокупности оказались столь высоки, что им охотно пользуются и профессиональные программисты. Не менее впечатляю-щей, в том числе и финансовой, удачи добился Филип Кан, француз, разрабо-тавший систему Турбо-Паскаль. Суть его идеи состояла в объединении после-довательных этапов обработки программы – компиляции, редактирования свя-зей, отладки и диагностики ошибок – в едином интерфейсе. Версии Турбо-Паскаля заполонили практически все образовательные учреждения, програм-мистские центры и частные фирмы. На базе языка Паскаль созданы несколько более мощных языков (Модула, Ада, Дельфи).

6. Кобол (COmmon Business Oriented Language – язык, ориентированный на общий бизнес); в значительной мере вышел из употребления. Был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса.

7. АДА; является языком, победившим (май 1979 г.) в конкурсе по разра-ботке универсального языка, проводимым Пентагоном с 1975 году. Разработ-чики – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность парал-лельной обработки, управления процессами в реальном времени и многое дру-гое, чего трудно или невозможно достичь средствами более простых языков.

8. Си (С – «си»); широко используется при создании системного про-граммного обеспечения. Наложил большой отпечаток на современное про-

Page 50: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

50

граммирование (первая версия – 1972 г.), является очень популярным в среде разработчиков систем программного обеспечения (включая операционные сис-темы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.

9. Си++ (С++); объектно-ориентированное расширение языка Си, создан-ное Бьярном Страуструпом в 1980 году. Множество новых мощных возможно-стей, позволивших резко повысить производительность программистов, нало-жилось на унаследованную от языка Си определенную низкоуровневость.

10. Дельфи (Delphi); язык объектно-ориентированного «визуального» про-граммирования; в данный момент чрезвычайно популярен. Созданный на базе языка Паскаль специалистами фирмы Borland язык Delphi, обладая мощностью и гибкостью языков Си и Си++, превосходит их по удобству и простоте интер-фейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет.

11. Ява (Java); платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц. Этот язык был создан компанией Sun в начале 90-х годов на основе СИ++. Он призван упростить разработку приложений на осно-ве Си++ путем исключения из него всех низкоуровневых возможностей.

12. Лисп (Lisp) – функциональный язык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.

13. Пролог (PROgramming in LOGic – логическое программирование). Главное назначение языка – разработка интеллектуальных программ и систем. Пролог – это язык программирования, созданный специально для работы с ба-зами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В языке реализован механизм возврата для выпол-нения обратной цепочки рассуждений, при котором предполагается, что неко-торые выводы или заключения истинны, а затем эти предположения проверя-ются в базе знаний, содержащей факты и правила логического вывода. Если предположение не подтверждается, выполняется возврат и выдвигается новое предположение. В основу языка положена математическая модель теории исчисления предикатов.

Языки программирования для Интернета: 1. HTML. Общеизвестный язык для оформления документов. Он очень

прост и содержит элементарные команды форматирования текста, добавления рисунков, задания шрифтов и цветов, организации ссылок и таблиц.

2. PERL. Он задумывался как средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и управления задачами. По мощности Perl значительно превосходит языки типа Си. В него введено много часто используемых функций работы со строками, массивами, управле-ние процессорами, работа с системной информацией.

Page 51: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

51

3. Tcl/Tk. Этот язык ориентирован на автоматизацию рутинных процессов и состоит из мощных команд. Он независим от системы и при этом позволяет создавать программы с графическим интерфейсом.

4. VRML. Создан для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры.

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

Контрольные вопросы 1. Что такое системы программирования и к какому классу программ они от-

носятся? 2. Что входит в состав систем программирования? 3. На каком языке программирования создавались первые программы? 4. На какие языки подразделяются процедурные языки? 5. Охарактеризуйте языки низкого уровня. 6. Какой язык относится к языку низкого уровня? 7. Достоинства языков низкого уровня. 8. Охарактеризуйте языки высокого уровня. 9. Достоинства языков высокого уровня. 10. Приведите примеры языков высокого уровня. 11. Для чего предназначены трансляторы? 12. Чем отличается компилятор от интерпретатора? 13. Недостатки интерпретации (как вид транслятора). 14. Что представляет собой процесс компиляции программы? 15. Какие действия выполняются при компиляции? 16. Чем отличается загрузочный модуль от объектного? 17. Чем отличается процедурное программирование от непроцедурного? 18. Какие виды программирования относятся к непроцедурному

программированию? 19. Особенность декларативных языков. 20. Охарактеризуйте кратко языки программирования: Фортран, Бейсик, Пас-

каль, Кобол. 21. Охарактеризуйте кратко языки программирования: Ада, Си, Си++, Delphi,

Java. 22. Приведите примеры объектно-ориентированных языков. 23. К какому классу языков относится язык Лисп? 24. К какому классу языков относится язык Пролог?

Page 52: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

52

Тема 5. Методологии программирования

Подходы к созданию алгоритмов претерпели изменения в ходе эволюции компьютеров.

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

Структурное программирование С появлением массовых ЭВМ 3-го поколения устаревшая технология про-

граммирования оказалась основным фактором, сдерживающим развитие и рас-пространение компьютерных (информационных) технологий, что подтолкнуло ведущие в этой сфере деятельности фирмы, в первую очередь IBM, к разработке новых методологий программирования. Появившийся в начале 1970-х годов но-вый подход к разработке алгоритмов получил название структурного. Эта ме-тодология оказалась настолько жизнеспособной, что и до сих пор является основ-ной в большом количестве проектов. Основу этой технологии составляют следую-щие положения.

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

• Простота управляющих структур, используемых в задаче. Логическая струк-тура программы может быть выражена комбинацией трех базовых структур: сле-дования, ветвления и цикла.

Разработка программы должна вестись поэтапно. На каждом этапе должно решаться ограниченное число четко поставленных задач с ясным пониманием их

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

Следование – самая важная из структур. Она означает, что действия могут быть выполнены друг за другом (рис. 5.1).

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

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

Выполнить а

Выполнить b

Выход

Вход

Рис. 5.1. Структура

«Следование»

Page 53: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

53

выбирается один из путей (рис. 5.2). Эта структура называется также «ЕСЛИ – ТО – ИНАЧЕ», или «развилка».

Каждый из путей (ТО или ИНАЧЕ) ведет к общей точке слияния, так что выпол-нение программы продолжается независимо от того, какой путь был выбран.

Может оказаться, что для одного из результатов проверки ничего предприни-мать не надо. В этом случае можно применять только один обрабатывающий блок (рис. 5.3).

Вход

Выход

Проверить

Выполнить b

Выполнить а

Истина Ложь

Рис. 5.2. Структура «Ветвление»

Вход

Выход

Проверить

Выполнить а

Истина

Ложь

Рис. 5.3. Структура «Неполное ветвление»

Цикл (или повторение) предусматривает повторное выполнение некоторого

набора команд программы. Если бы циклы не существовали, вряд ли занятие про-граммированием было бы оправданным: циклы позволяют записать длинные по-следовательности операций обработки данных с помощью небольшого числа по-вторяющихся команд. Разновидности цикла изображены на рис. 5.4 и 5.5.

Вход

Выход

Проверить

Выполнить а

Истина

Рис. 5.4. Структура цикла «Пока»

Вход

Выход

Выполнить а

Рис. 5.5. Структура цикла «До»

Проверить

Ложь

Истина

Page 54: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

54

Цикл «Пока» начинается с проверки логического выражения. Если оно ис-тинно, то выполняется «Выполнить а», затем все повторяется снова, пока логиче-ское выражение сохраняет значение «истина». Как только оно становится лож-ным, управление передается по программе дальше (см. рис. 5.4).

В цикле «До» проверка условия выполняется после операторов цикла («Вы-полнить а»). Цикл повторяется, если условие ложно. Как только оно становится истинным, управление передается по программе дальше (см. рис. 5.5).

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

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

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

Нисходящее проектирование Метод основан на идее уровней абстракции, которые становятся уровнями

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

Рис 5.6. Пример схемы иерархии

Page 55: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

55

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

Еще одним важным компонентом структурного подхода к разработке ал-горитмов является модульность.

Концепция модульного программирования Модуль – основа концепции модульного программирования. Каждый модуль

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

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

Использование модулей имеет следующие преимущества: 1) возможность создания программы несколькими программистами; 2) простота проектирования и последующих модификаций программы; 3) упрощение отладки программы – поиска и устранения в ней ошибок; 4) возможность использования готовых библиотек наиболее употребитель-

ных модулей. Структурный подход сыграл огромную роль в программировании и вы-

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

Объектно-ориентированное программирование (ООП) Само структурное программирование, наиболее отчетливо выраженное в

языке Паскаль (PASCAL), возникло в ходе развития процедурно-ориентированного подхода, заложенного в исторически первом из языков про-граммирования Фортране (FORTRAN). Во всех языках этого направления раз-работчик алгоритма (он же, как правило, и программист) описывает, какими действиями следует реализовать процесс. В основе языков этой группы лежат понятия команд (операторов) и данных. Отдельные группы операторов могут объединяться во вспомогательные алгоритмы (процедуры, подпрограммы).

Основное понятие объектного программирования – объект.

Page 56: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

56

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

• Инкапсуляция – объединение в единое целое данных и алгоритмов об-работки этих данных. В рамках ООП данные называются полями объекта, а ал-горитмы – объектными методами.

• Наследование – свойство объектов порождать своих «потомков». Объект - «потомок» автоматически наследует от «родителей» все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы «родите-ля» или дополнять их.

• Полиморфизм – свойство родственных объектов (т.е. объектов, имею-щих одного общего «родителя») решать схожие по смыслу проблемы разными способами.

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

начале 70-х годов. Он не получил столь широкого применения как процедур-ный, поскольку был направлен на относительно узкий круг задач искусственно-го интеллекта. При его применении программист описывает свойства исходных данных, их взаимосвязи, свойства, которыми должен обладать результат, а не алгоритм получения результата. Разумеется, для получения результата этот ал-горитм все равно нужен, но он должен порождаться автоматически той систе-мой, которая поддерживает декларативно-ориентированный язык программи-рования. При логическом варианте такого подхода (прежде всего это относится к языку Пролог, PROLOG) задача описывается совокупностью фактов и правил в некотором формальном логическом языке, при функциональном варианте – в виде функциональных соотношений между фактами (язык Лисп, LISP).

Параллельное программирование Процедурно-ориентированное программирование развивается и в другом

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

CASE-системы За последнее десятилетие в области средств автоматизации программиро-

вания сформировалось новое направление под общим названием CASE-технология (Computer Aided Software Engineering-CASE) – средство для созда-ния информационных систем.

Page 57: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

57

Основная цель CASE-систем состоит в автоматизировании всего процесса создания программного обеспечения. CASE-система позволяет исследовать прототип создаваемой программной системы на основе ее модели.

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

Сегодня лидирующей в мире CASE-системой считается Rational Rose кор-порации Rational Software. Система Rational Rose нацелена на создание модулей с использованием языка Unified Modeling Language (UML).

Последняя версия CASE-системы компании Rational Software Rational Rose 98 успешно применяется для создания коммерческого ПО и поддерживает по-пулярные языки программирования Java, Си++, Смолток, Ада, Visual Basic, Power Builder и Forte. Кроме того, пакет Rose 98 способен генерировать описа-ния на языках Interface Definition Language (IDL) для приложений CORBA (тех-нологии распределенных вычислений) и Data Definition Language (DDL) для приложений доступа к базам данных, в том числе и Oracle 8. Разумеется, под-держка того или иного языка программирования зависит от того, о какой ре-дакции пакета Rational Rose 98 идет речь. К примеру, нельзя требовать многого от самого простого варианта пакета – Rose 98 Modeler Edition. Зато Rose 98 Enterprise Edition оснащен от души.

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

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

отсутствием полного взаимопонимания между заказчиком (пользователем) и исполнителем программного продукта, возникающее из-за отсутствия у про-граммиста знаний о проблемной области пользователя, а у пользователя – о способах решения задач на ЭВМ.

А что если программиста удалить из технологической цепи решения зада-чи? Это можно сделать лишь тогда, когда в самой ЭВМ появиться «автоматиче-ский программист», который будет взаимодействовать с пользователем и помо-гать ему составлять программы. Так возникает идея ЭВМ нового – пятого по-коления. В отличие от ЭВМ предшествующих поколений новые машины долж-ны иметь средства для интеллектуального взаимодействия с пользователем на его профессиональном естественном языке. Другими словами, не пользователь приближается к ЭВМ, а сама ЭВМ становится интеллектуальным собеседником и помощником пользователя.

Бум, возникший в конце 70-х годов в искусственном интеллекте и привед-ший к созданию новой отрасли промышленности, не случаен. Его вызвали три причины:

1. Угроза всеобщей мобилизации населения земного шара в программи-

Page 58: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

58

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

2. Развитие робототехнических малолюдных или безлюдных производств. На современных промышленных предприятиях происходит активное внедрение автоматических систем, в которых широко используются интеллектуальные роботы. Прогресс в этой области во многом зависит от того, насколько роботы могут хранить в своей памяти необходимую сумму знаний о профессии, кото-рой они овладевают.

3. Необходимость передавать на ЭВМ задачи из плохо структурирован-ных проблемных областей. Именно для них нужно автоматизировать труд алго-ритмиста, его способность формализовать то, что с трудом поддается формали-зации. Путь решения этой проблемы – формализация знаний, которые есть у профессионалов в данной проблемной области, но хранятся в их памяти в виде неформализованных соображений, умений и навыков. Такие профессионалы являются экспертами своего дела, а получаемые от них знания обычно называ-ют экспертными. Если в базу знаний системы заложить знания подобного типа, то система будет называться экспертной.

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

Данные и знания

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

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

При обработке на ЭВМ данные трансформируются, проходя этапы: 1. Данные как результат измерений и наблюдений; 2. Данные на материальных носителях информации; 3. Модели данных в виде диаграмм, графиков; 4. Данные в компьютере на языке описания данных; 5. Базы данных на машинных носителях информации. Знания основаны на данных. Они представляют собой результат мысли-

тельной деятельности человека. Знания – это закономерности предметной области (связи, законы), полу-

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

Page 59: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

59

Знания трансформируются аналогично данным: 1. Знания в памяти человека как результат мышления; 2. Материальные носители знаний (учебники, методические пособия); 3. Поле знаний – условное описание основных объектов предметной об-

ласти, их атрибутов и закономерностей, их связывающих; 4. Знания, описанные на языке представления знаний (продукционные

модели, семантические сети, фреймы); 5. База знаний на машинных носителях информации. Знания – это хорошо структурированные данные, или данные о данных,

или метаданные. Для хранения данных используются базы данных, для хранения знаний –

базы знаний. База знаний – основа любой интеллектуальной системы.

Модели представления знаний

Существуют десятки моделей (или языков) представления знаний для раз-личных предметных областей. Большинство из них может быть сведено к сле-дующим классам:

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

представить знания в виде предложений типа «Если (условие), то (действие)».

Под «условием» понимается некоторое предложение – образец, по которо-му осуществляется поиск в базе знаний, а под «действием» – действия, выпол-няемые при успешном исходе поиска.

Чаще всего вывод на такой базе знаний бывает прямой (от данных к поиску цели) или обратный (от цели для ее подтверждения – к данным).

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

Имеется большое число программных средств, реализующих продукцион-ный подход (язык OPS 5; «оболочки» или «пустые» ЭС – EXSYS Professional, Kappa, ЭКСПЕРТ и др; инструментальные системы ПИЭС и СПЭИС и др.), а также промышленных ЭС на его основе.

Семантические сети Термин семантическая означает «смысловая». Семантическая сеть – это ориентированный граф, вершины которого –

понятия, а дуги – отношения между ними.

Page 60: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

60

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

• класс – элемент класса (цветок – роза); • свойство – значение (цвет – красный); • пример элемента класса (роза – голландская). Пример семантической сети (см. рис. 5.7). В качестве вершин выступают

понятия «человек», «Иванов», «Волга», «автомобиль», «вид транспорта» и «двигатель».

Человек Иванов например

Автомобиль

любит

это Волга

принадлежит

это

Двигатель

Имеет частью

Цвет Красный

Вид транспорта

Рис. 5.7. Семантическая сеть Данная модель представления знаний была предложена американским

психологом Куиллианом. Недостатком этой модели является сложность организации процедуры по-

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

языки, например NET, язык реализации систем SIMER+MIR и др. Известны ЭС, использующие семантические сети в качестве языка представления знаний – PROSPECTOR, CASNET, TORUS.

Фреймы Термин фрейм (от англ. Frame, что означает «каркас» или «рамка») был

предложен Марвином Минским, одним из пионеров искусственного интеллекта в 70-е годы.

Фрейм – это абстрактный образ для представления некоего стереотипа восприятия.

Например, произнесение слова «комната» порождает образ комнаты: «жи-лое помещение с четырьмя стенами, полом, потолком, окнами и дверью, пло-щадью 6 – 20 м2». Из этого описания ничего нельзя убрать (например, убрав

Page 61: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

61

окна, мы получим уже чулан, а не комнату), но в нем есть «дырки» или «слоты» - это незаполненные значения некоторых атрибутов, например, количество окон, цвет стен, высота потолка, покрытие пола и др.

В теории фреймов такой образ комнаты называется фреймом комнаты. Фреймом также называется и формализованная модель для отображения объекта.

Пример фреймов (рис. 5.8).

Ребенок

В школе

7–17 лет

Форму

Ученик

Учится

Возраст

Носит

АКО

Человек

0–16 лет

50–180 см

Сладкое

Ребенок

Возраст

Рост

Любит

АКО

Млекопитающий

Мыслить

Человек

Умеет

АКО

Рис. 5.8. Сеть фреймов

Различают фреймы-образцы, или прототипы, хранящиеся в базе знаний, и

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

Важнейшим свойством теории фреймов является заимствование из теории семантических сетей – так называемое наследование свойств. Наследование происходит по АКО-связям (A-Kind-of = это). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются значения слотов.

В сети фреймов понятие «ученик» наследует свойства фреймов «ребенок» и «человек», которые находятся на более высоком уровне иерархии. Так, на во-прос «любят ли ученики сладкое» следует ответ «да», так как этим свойством обладают все дети, что указано во фрейме «ребенок». Наследование свойств может быть частичным, так как возраст для учеников не наследуется из фрейма «ребенок», поскольку указан явно в своем собственном фрейме.

Специальные языки представления знаний в сетях фреймов FRL (Frame Representation Language), KRL, фреймовая «оболочка» Кара [Стрельников, Бо-рисов] и др., фрейм-ориентированные ЭС – ANALYST, TRISTAN, МОДИС.

Page 62: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

62

Формальные логические модели Традиционно в представлении знаний выделяют формальные логические

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

Исчисление предикатов 1-го порядка в промышленных ЭС практически не используется. Эта логическая модель применима в основном в исследователь-ских системах, так как предъявляет очень высокие требования и ограничения к предметной области.

В промышленных ЭС используются различные ее модификации и расширения.

Несмотря на все недостатки, наибольшее распространение получила про-дукционная модель представления знаний. При использовании продукционной модели база знаний состоит из набора правил. Программа, управляющая пере-бором правил, называется машиной вывода (интерпретатор правил).

Экспертные системы

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

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

Структура ЭС приведена на рис. 5.9.

Рис. 5.9. Структура экспертной системы

Page 63: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

63

ЭС состоит из следующих компонент. База знаний предназначена для хранения экспертных знаний о предмет-

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

o Фреймы используются в базе знаний для описания объектов, со-бытий, ситуаций, прочих понятий и взаимосвязей между ними. Фрейм – это структура данных, состоящая из слотов (полей).

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

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

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

Машина логического вывода может реализовывать рассуждения в виде: o дедуктивного вывода (прямого, обратного, смешанного); o нечеткого вывода; o вероятностного вывода; o унификации (подобно тому, как это реализовано в Прологе); o поиска решения с разбиением на последовательность подзадач; o поиска решения с использованием стратегии разбиения пространства

поиска с учетом уровней абстрагирования решения или понятий, с ними связанных;

o монотонного или немонотонного рассуждения; o рассуждений с использованием механизма аргументации; o ассоциативного поиска с использованием нейронных сетей; o вывода с использованием механизма лингвистической переменной. Подсистема общения служит для ведения диалога с пользователем, в хо-

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

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

Page 64: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

64

нет. Нормальный пользователь выбирает последнее, и такая ЭС не имеет пер-спектив для использования.

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

Контрольные вопросы 1. Приведите структуры следования и ветвления (полное и неполное). 2. Приведите структуры циклов Пока и До. 3. Отличие циклов До и Пока. 4. На чем основано нисходящее проектирование? 5. Что вы можете сказать о концепции модульного проектирования? 6. Что такое объект в объектно-ориентированном программировании? 7. Три принципа объектно-ориентированного программирования. 8. Особенность декларативного программирования. 9. Перечислите методологии программирования. 10. Что такое CASE-системы? 11. В каких областях применяются экспертные системы? 12. Что входит в состав экспертной системы? 13. Отличие знаний от данных. 14. Приведите модели представления знаний. 15. Что такое продукционная модель представления знаний? 16. Что такое семантические сети в представлении знаний? 17. Что такое фреймы в представлении знаний? 18. Какие стратегии вывода для продукционной модели вы знаете?

Page 65: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

65

Тема 6. Паскаль – структурный язык программирования высокого уровня

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

расширением .pas. Правила языка Паскаль предусматривают единую для всех программ фор-

му основной структуры: Program <Имя программы>; <Раздел описаний> Begin <Тело программы> End. Здесь слова Program, Begin и End являются служебными. Программа заканчивается служебным словом end, после которого ставится

точка. Описания величин (в разделе Const, Var) и операторы друг от друга от-деляются символом «;» (точкой с запятой).

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

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

идентификатор должен быть уникальным, то есть одним и тем же име-нем разные объекты не могут быть названы;

идентификатор имеет ограничение по длине (зависит от конкретной реализации языка на компьютере);

идентификатор может состоять только из символов латинского алфави-та, цифр и знака подчеркивания («_»);

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

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

1. Описание внешних модулей, процедур и функций (Uses); 2. Описание меток (Label); 3. Описание констант (Const); 4. Описание типов, задаваемых пользователем (Type); 5. Описание переменных (Var); 6. Описание функций и процедур (Procedure, Function).

Page 66: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

66

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

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

Следует обратить внимание на то, что при записи числовых констант с дробной частью эта часть отделяется от целой точкой, а не запятой (например, 3.15). Для записи очень больших по модулю или очень малых (близких к нулю) чисел существует возможность записи их в так называемой экспоненциальной форме (форме с плавающей точкой). Например: 2.4567Е-06. Здесь буква «Е» отделяет мантиссу (совокупность значащих цифр числа с десятичной точкой после первой цифры) от порядка (показателя степени десятки в стандартном виде числа).

Константы, представляющие собой строковые величины, заключаются в апострофы (например, 'привет').

Описание именованных констант начинается служебным словом Const. Далее следуют записи вида: <Идентификатор> = <значение>;

Пример: Const P=5.64; Name1='Татьяна'; Name2='Виктор'; R21=6.33187E+03; Тип константы определяется ее значением в разделе Const. Переменная в Паскале – именованный участок памяти для хранения дан-

ных определенного типа. Значение переменной (информация в соответствую-щих ячейках памяти) в ходе выполнения программы может быть изменено.

Раздел описания переменных начинается служебным словом Var, после которого следуют записи следующего вида:

<Список имен переменных> : <Название типа>; Список может состоять из нескольких имен, разделяющимися запятыми.

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

Пример: Var

A,B,H_22,Angle : Real; Name3 : String; Flag : Boolean; I,J,K,Count : Word;

Page 67: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

67

Основные типы данных Тип данных определяет множество значений, допустимых для переменной,

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

В Паскале существует пять базовых типов данных: 1) Integer (целый); 2) Real (вещественный); 3) Char (символьный); 4) String (строковый); 5) Boolean (логический).

Целочисленные типы данных Целочисленные типы данных занимают в памяти компьютера от 1 до 4

байт (табл 6.1). Таблица 6.1.Целочисленные типы данных

Тип Диапазон значений Требуемая память (байт)

Byte 0…255 1 ShortInt – 128…127 1

Integer – 32768…32767 2 Word 0…65535 2 LongInt – 2147483648…2147483647 4

Пример. Var

x1,x2: byte; y1: word; z: integer;

Над данными целого типа определены следующие арифметические опера-ции: +, -, *, /, div, mod. Результат выполнения этих операций над целыми опе-рандами получается также целого типа (исключение составляет операция / – ре-зультат всегда вещественное число).

Над данными целого типа определены следующие операции отношения: =, <>, <, >, <=, >=. Результат выполнения этих операций – логический тип.

Для целых чисел определены следующие стандартные функции: Abs(x) – Возвращает модуль x Sqr(x) – Возвращает квадрат числа x Sqrt(x) – Возвращает квадратный корень из x Sin(x) – Возвращает sin(x), результат вещественного типа Cos(x) – Возвращает cos(x), результат вещественного типа Arctan(

x) – Возвращает arctg(x), результат вещественного типа

Ln(x) – Возвращает ln(x), результат вещественного типа Exp(x) – Возвращает xe результат вещественного типа

Page 68: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

68

Succ(x) – Возвращает следующее целое число (x + 1) Pred(x) – Возвращает предыдущее целое число (x – 1) Ord(x) – Возвращает аргумент x Odd(x) – Возвращает результат логического типа: false – для четного

x, true – для нечетного x

Для целых чисел определены следующие стандартные процедуры: Dec(x,i) – уменьшает x на i, если i не задано – то на 1; Inc(x,i) – увеличивает x на i, если i не задано – то на 1.

Вещественные типы данных Вещественные типы данных занимают в памяти компьютера от 4 до 10

байт (табл. 6.2). Таблица 6.2. Вещественные типы данных

Тип Диапазон значений Мантисса Требуемая память (байт)Real 3839 7.1...9.2 ee 11–12 6 Single 3845 4.3...5.1 ee 7–8 4 Double 308324 7.1...0.5 ee 15–16 8 Extended 49324951 1.1...4.3 ee 19–20 10 comp 12...12 6363 ee 19–20 8

Пример. Var

W: real; Summa: Extended;

Вещественные значения могут изображаться в форме с фиксированной точкой, например, 7.54, 0.015, а также в форме с плавающей точкой, то есть па-рой чисел вида <мантисса>E<порядок>: 7.54Е+00, 1.5Е-02.

Над данными вещественного типа определены следующие арифметиче-ские операции: +, -, *, /. Результат выполнения этих операций получается также вещественного типа.

Над данными вещественного типа определены следующие операции отно-шения: =, <>, <, >, <=, >=. Результат выполнения этих операций – логический тип.

Для вещественных чисел определены следующие стандартные функции: Abs(

x) – Возвращает модуль x, результат вещественного типа

Sqr(x)

– Возвращает квадрат числа x, результат вещественного типа

Sqrt(x)

– Возвращает квадратный корень из x, результат вещественного типа

Sin(x)

– Возвращает sin(x), результат вещественного типа

Cos(x)

– Возвращает cos(x), результат вещественного типа

Page 69: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

69

Arctan(x)

– Возвращает arctg(x), результат вещественного типа

Ln(x) – Возвращает ln(x), результат вещественного типа Exp(

x) – Возвращает xe , результат вещественного типа

Trunk(x)

– Преобразует вещественный аргумент x в целое число путем отбрасывания дробной части

Round(x)

– Преобразует вещественный аргумент x в целое число путем округления до ближайшего целого

Символьный тип Символьный тип определяет множество символов кодовой таблицы ASCII.

Каждому символу поставлено в соответствии число в диапазоне от 0 до 255. Занимает в памяти 1 байт. Пример

Var s: char;

В программе значения переменных и констант типа char должны быть за-ключены в апострофы, например, А, а.

Определены следующие операции отношения: =, <>, <, >, <=, >=. Резуль-тат – логический тип.

Определены следующие стандартные функции: Ord(s) – преобразует символ s в его код типа byte. Pred(s) – возвращает предыдущий символ. Succ(s) - возвращает следующий символ. Примеры: Ord( : ) = 58 Ord( А ) = 65 Pred( Б ) = А Succ( Г ) = Д Строковый тип Строка – последовательность символов (до 255). Пример Var Str: string; {будет зарезервировано 256 байт} Name: string[25]; {будет зарезервировано 26 байт} В программе значения переменных и констант типа String должны быть

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

массива, например Str[5]. Самый первый байт в строке имеет индекс 0 и содержит текущую длину

строки.

Page 70: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

70

[0] [1] [2] [3] … [255] Str:=’КУКЛА’ Среди стандартных функций назовем две: Ord(Str[0]) – определяет текущую длину строки Length(Str) – определяет текущую длину строки К строкам применима операция «+» – сцепление, например: Str:=’a’+’bc’; Определены следующие операции отношения: =, <>, <, >, <=, >=. Эти опе-

рации выполняются над двумя строками посимвольно слева направо (сравнение внутренней кодировки символов), например

‘A’ > ‘:’ {65 > 58} - результат True ‘Turbo’ < ‘Turbo Pascal’ - результат True Логический тип Этот тип данных представлен двумя значениями: True и False. Занимает в памяти 1 байт. Пример Var Flag: Boolean; Для значений True и False истинны следующие соотношения: False < True Ord(False) = 0 Ord(True) = 1 Succ(False) = True Pred(True) = False

Выражения, операнды, операции Конструкция языка, задающая порядок выполнения действий над данны-

ми, называется выражением. Выражение состоит из операндов (константы, переменные и функции, над

которыми выполняются операции), круглых скобок и знаков операций. Опера-ции определяют действия, которые надо выполнить над операндами. Например, в выражении (x+y)*2 x, y и 2 – операнды, а «+», «*» – знаки операций.

Операции делятся на арифметические, логические, операции отношения и другие. Выражения соответственно называются арифметическими, логически-ми, выражениями отношения и другими.

Тип результата выражения определяется типом операндов и операциями, выполняемыми над ними.

Арифметические выражения и операции

5 К У К Л А

Page 71: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

71

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

Порядок вычисления определяется скобками и старшинством операций: 1) *, /, div, mod 2) +, - Арифметические операции:

Операция Замечания

-a Обращение знака a+b Сложение операндов a-b Вычитание операндов a*b Умножение операндов a/b Деление операндов. b<>0. Результат всегда вещественное

число. a div b Целочисленное деление. b<>0. a и b должны быть целыми

числами. Пример: 7 div 2 = 3 a mod b Остаток от целочисленного деления. b<>0. a и b должны быть

целыми числами. Пример: 7 mod 2 = 1

Тип константы определяется ее значением, например, -152 – целая кон-станта, 3.2Е-2 – вещественная константа.

Тип переменной задается в разделе Var. Как правило, если оба операнда имеют целый тип, то и результат выраже-

ния имеет целый тип; если хотя бы один из операндов имеет вещественный тип, то и результат выражения имеет вещественный тип. Исключение составляет операция деления ( / ) – результат всегда вещественного типа независимо от ти-пов операндов.

Пример. Записать арифметическое выражение и определить его тип.

21

yxyx

z

Выражение будет записано: z:=(x+y)/(1-(x-y)/2) Тип результата – вещественный, так как есть операция деления. Логические выражения, выражения отношения В Паскале есть шесть операций отношения (=, <>, <, >, <=, >=), позволяю-

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

Логическим называется выражение, составленное из операндов логическо-го типа, скобок и логических операций (Not – отрицание, And – логическое

Page 72: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

72

«И», Or – логическое «Или»). В качестве операндов могут быть переменные ло-гического типа или выражения отношения, например, (x>0)And(x<10).

Рассмотрим таблицу истинности логических операций:

Пусть даны две логиче-ские переменные x и y.

1 – обозначено True 0 – обозначено False

Приоритет логических операций и операций отношения: 1) Not 2) And 3) Or 4) =, <>, <, >, <=, >=. Общая таблица приоритета операций: 1) Not (высший приоритет) 2) *, /, Div, Mod, And 3) +, -, Or 4) =, <>, <, >, <=, >=. Операции с одинаковым приоритетом выполняются поочередно слева

направо.

Совместимость и преобразование типов Турбо Паскаль – типизированный язык, в котором осуществляется строгое

соблюдение соответствия типов данных. Два типа считаются совместимыми, если: оба они есть один и тот же тип; оба вещественные (любые подтипы вещественного типа); оба целые (любые подтипы целого типа); один – вещественный тип, второй – целочисленный; один – строка, второй – символ. Особое значение совместимость приобретает в операторах присваивания. Существует явное и неявное преобразование типов. При явном преобразовании типов используются функции преобразования,

аргументы которых принадлежат одному типу, а результат – другому (Ord, Trunc, Round, Chr).

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

Основные операторы языка Оператор присваивания

X Y Not X X And Y X Or Y 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1

Page 73: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

73

Оператор используется, чтобы явно присвоить переменной результат вы-числения выражения.

Формат оператора: <Имя переменной> := <Выражение>; Примеры:

S:=0; Name:=’Оля’; S:=S+1;

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

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

Переменной вещественного типа можно присвоить выражение веществен-ного или целочисленного типов. Переменной целочисленного типа можно при-своить значение выражения только целочисленного типа.

Например, если объявлены следующие переменные Var

I, n : integer; D : real;

то операторы присваивания i:=n/10; – неправильный, i:=1.0; – неправильный, d:=i: – правильный. Если тип выражения не соответствует типу переменной, то компилятор

выдает сообщение об ошибке. Составной оператор Этот оператор, строго говоря, оператором не является. Дело в том, что

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

Формат оператора: Begin

<Оператор 1>; <Оператор 2>; ...... <Оператор N>

End; Составной оператор предоставляет возможность выполнить произвольное

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

Оператор ввода

Page 74: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

74

Формат оператора: Read(<Список ввода>); Readln(<Список ввода>); Например,

read(x,y); Оператор ввода позволяет вводить данные в переменные во время выпол-

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

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

Разница между работой операторов Read и Readln (от Read line) состоит в следующем: после выполнения Read значение следующего данного считывает-ся с этой же строчки, а после выполнения Readln – с новой строки.

Оператор вывода Формат оператора: Write(<Список вывода>); Writeln(<Список вывода>); Например,

Write(Результат=, Pi*r*r); Оператор вывода позволяет выводить на экран монитора данные из списка

вывода. Элементами списка вывода могут являться имена переменных, кон-стант, выражения (которые предварительно вычисляются), текст, заключенный в апострофы. Элементы списка, также как и в операторах ввода, разделяются запятыми.

Различие между операторами Write и Writeln таково: после выполнения оператора Writeln (от Write line) курсор переходит на новую строчку, а после выполнения оператора Write курсор остается на строке вывода, и следующий оператор вывода начинает вывод именно с этой позиции.

Оператор Writeln без параметров (Writeln;) реализует пропуск строки и пе-реход к началу следующей строки.

После имени переменной или выражения через двоеточие можно указать формат числа, который задает ширину поля вывода. Для переменной целого типа – это одно число, указывающее число позиций, отводимых под целое зна-чение (например, write(x:10);). Для переменной вещественного типа – это два числа, первое из которых указывает число позиций, отводимых под все число, включая десятичную точку, второе – число позиций, отводимых под дробную часть числа (например, write(y:7:2);). Если для вещественных величин формат вывода не задан, то значение выводится в форме с плавающей точкой.

Page 75: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

75

Приведем пример использования операторов ввода и вывода: Program Inteface; Uses Crt; Var

R,S : Real; Begin

Clrscr; {Очистка экрана} Write('Введите радиус круга '); {Печать на экране просьбы о вводе} Readln(R); {Ввод значения в переменную R с клавиатуры} S:=PI*SQR(R); {Вычисление площади круга 2r } Writeln('Площадь круга радиусом ',R,' равна ',S);

End. Эта программа запрашивает у пользователя значение радиуса круга, вво-

дит его значение, рассчитывает и выводит на экран величину площади круга с таким радиусом. Таким образом, появляется возможность, не внося изменений в текст программы, вводить с клавиатуры различные значения радиуса и полу-чать соответствующие им значения площади круга. Для этого достаточно не-сколько раз запустить программу. Также эта программа демонстрирует сле-дующее правило: выдача результатов должна быть прокомментирована так, чтобы был ясен смысл напечатанных чисел. Действительно, ведь можно было бы ограничиться Writeln(S), но значение выведенного программой числа в этом случае было бы ясно только тому, кто эту программу написал.

Условный оператор Одной из основных алгоритмических структур является ветвление

(альтернатива). Если условие выполняется, то будет выполнена инструкция «1», если нет,

то – инструкция «2». Несмотря на то, что в схеме присутствуют два действия, выполнено будет только одно, так как условие либо ложно, либо истинно. Третьего не дано. Такая схема позволяет решать задачи, в которых в зависимо-сти от сложившихся обстоятельств требуется совершить то или иное действие. Нет никакого сомнения, что число задач такого рода огромно. Более того, очень сложно придумать реально значимое задание, алгоритм выполнения которого содержал бы в себе простое прямое следование команд. Даже примитивный пример, взятый из курса математики, не может быть решен без использования ветвления: необходимо вычислить значение выражения y = 1/x. Данная функ-ция не всегда имеет значение, то есть не для всех значений аргумента сущест-вует значение результата. Наша задача так составить алгоритм, чтобы исполни-тель ни в коем случае не встал в тупик, даже при получении нуля в качестве ар-гумента. Сформулировать это на естественном языке нетрудно:

1. Получить значение x. 2. Если x = 0, то сообщить, что выражение значения не имеет, иначе – вы-

числить y как 1/x. Таким образом используется приведенная выше алгоритмическая структу-

ра. Она может быть выражена простыми словами:

Page 76: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

76

Если <условие> {Если выполняется условие} то <действие 1> {то выполнить действие № 1 } иначе <действие 2> {иначе – выполнить действие № 2 }

Как это записать на Паскале? Да точно так же, только по-английски. Формат условного оператора на языке Паскаль: If <условие>

Then <оператор 1> Else <оператор 2>;

Обратите внимание на то, что после Then и Else стоит только один опера-тор. Но что делать, чтобы решить задачу, в которой по выполнению или невы-полнению условия нужно совершить не одно, а несколько действий? Здесь при-ходит на помощь уже известный нам составной оператор. В операторные скоб-ки можно заключить любое количество операторов.

Вариант условного оператора в этом случае: If <условие>

Then Begin <группа операторов 1> end Else Begin < группа операторов 2> end;

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

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

Приведем пример решения задачи: «Из двух чисел выбрать наибольшее».

Составим алгоритм и программу. Program Example; Var

A,B,C : Real; Begin

Writeln('Введите два числа'); Readln(A,B); {Ввод аргументов с клавиатуры} If A>B Then C:=A Else C:=B;

{Если A>B, то результат - A, иначе результат - B} Writeln(Наибольшее число равно , C); {Вывод результата на экран}

End. Еще один классический пример: «По заданным коэффициентам решить

квадратное уравнение». Эта задача сложнее, поэтому перед тем как писать про-грамму составим алгоритм, записав его в виде блок-схемы.

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

Начало

Ввод А,В

А>В

С := А С := В

Вывод С

Конец

Да Нет

Page 77: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

77

вывести на экран в случае неотрицательного дискриминанта (случай равенства дискриминанта нулю входит сюда же, корней – два, только они одинаковые).

При записи алгоритма на языке программирования следует учесть, что в ветви «нет» не одно действие, а три, поэтому следует применить составной оператор. Арифметические выражения не забывайте записывать в соответствии с правилами языка Паскаль. В остальном, эта программа не сложнее предыдущей. Program Sq1; Var

A, B, C, D, X1, X2 : Real; Begin

Writeln ('Введите коэффициенты квадратного уравнения'); Readln (A,B,C); D:=B*B-4*A*C; If D<0 Then Writeln ('Корней нет! ') Else Begin

X1:=(-B+SQRT(D))/(2*A); X2:=(-B-SQRT(D))/(2*A); Writeln ('X1= ', X1:8:3, ' X2= ',X2:8:3)

End End.

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

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

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

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

Начало

Ввод А,В,С

Конец

acbD 4: 2

D<0

a

Dbx

a

Dbx

2:

2:

2

1

Да Нет

Вывод “Корней нет”

Вывод 21 , xx

Page 78: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

78

ся). Этого можно избежать, используя совместно с оператором перехода услов-ный оператор, поставив выполнение перехода в зависимость от выполнения не-кого условия. Таким образом, мы получим структуру условного перехода и возможность организации конечного цикла. Вообще говоря, так мы можем ре-шить практически любую задачу, требующую реализации циклического алго-ритма. Конечно же, при помощи одного только топора можно построить дом. Но сколько времени и сил можно сэкономить, используя всевозможные специ-альные инструменты. Создатель языка Паскаль Н. Вирт также задался этими вопросами и решил их в пользу расширения языка тремя специальными воз-можностями организации циклов. Итак, существует три вида цикла, имеющих собственные операторы на языке Паскаль для их записи. Эти виды имеют соб-ственные условные названия: «Пока», «До», «С параметром». Друг от друга они несколько отличаются и используются каждый для своего класса задач.

Цикл «ПОКА» В группе «начальные присваивания»

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

Группа операторов, называемая «те-лом цикла», судя по этой схеме, будет вы-полняться пока истинно условие цикла. Выход из цикла произойдет, когда условие станет ложным.

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

может либо пользователь (нажав Ctrl+Break), либо аварийный останов самой программы, в случае переполнения переменной, деления на ноль и т. п. Поэто-му использовать структуру цикла следует с осторожностью, хорошо понимая, что многократное выполнение должно когда-нибудь заканчиваться.

На языке Pascal структура цикла «Пока» записывается следующим образом:

While <условие> Do <оператор>; Правда, лаконично? По-русски можно прочитать так: «Пока истинно усло-

вие, выполнять оператор». Здесь, так же, как в формате условного оператора, подразумевается выполнение только одного оператора. Если необходимо вы-полнить несколько действий, то может быть использован составной оператор. Тогда формат оператора принимает такой вид:

While <условие> Do Begin

Условие входа в цикл

Начальные присваивания

Тело цикла

Да

Выход из цикла

Нет

Page 79: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

79

<оператор 1>; <оператор 2>; <оператор 3>; . . .

End; Цикл «ДО» Этот вид цикла отличается от преды-

дущего в основном тем, что проверка ус-ловия повторения тела цикла находится не перед ним, а после. Поэтому цикл «До» на-зывают циклом «с постусловием», а «По-ка» – «с предусловием».

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

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

Формат цикла на языке Pascal: Repeat

<оператор 1>; <оператор 2>; <оператор 3>; . . .

Until <условие>; Читается так: «Выполнять оператор 1, оператор 2. и т. д. до выполнения

условия». Здесь не требуется использование составного оператора, потому что сами

слова Repeat и Until являются операторными скобками. Цикл «С параметром». В данном случае параметром будет являться целочисленная переменная,

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

Начальные присваивания

Тело цикла

Выход из цикла

Нет Условие выхода из цикла

Да

Page 80: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

80

Форматов у этого вида цикла предусмотрено два: For <П.Ц>:=<Н.З.> To <К.З.> Do <оператор>; For <П.Ц>:=<Н.З.> Downto <К.З.> Do <оператор>; Здесь П.Ц – параметр цикла, Н.З. – его начальное значение, К.З. – соответ-

ственно конечное значение параметра. В первом случае параметр с каждой итерацией увеличивается на единицу,

во втором – уменьшается на единицу. Читается данная структура так: «Для переменной (далее следует ее имя) от

начального значения до конечного выполнять оператор (являющийся телом цикла)». Иногда цикл с параметром называют «Для» («For»).

Выполняется этот цикл по следующему алгоритму: 1) параметру цикла присваивается начальное значение; 2) проверяется условие, лежит ли значение параметра цикла между на-

чальной и конечной величинами. Если оно лежит внутри интервала, то выполняется тело цикла, иначе работа цикла прекращается;

3) выполняется тело цикла; 4) переменная-параметр автоматически увеличивается на 1 (или -1). Примечание: при использовании Downto параметр автоматически умень-

шается на 1, а выход из цикла происходит тогда, когда параметр становится меньше конечного значения.

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

Вообще говоря, цикл «Пока» является универсальным, то есть любая зада-ча, требующая использования цикла, может быть решена с применением этой структуры. Циклы «До» и «С параметром» созданы для удобства программиро-вания.

Пример. Найти сумму квадратов всех натуральных чисел от 1 до 100. Решим эту задачу с использованием всех трех видов циклов. I. С использованием цикла «Пока».

Program Ex1; Var

A : Integer; S : Longint;

Begin S:=0; A:=1; While A<=100 Do Begin

S:=S+A*A; A:=A+1

End; Writeln(Результат = ,S)

End. II. С использованием цикла «До».

Program Ex2; Var

Page 81: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

81

A : Integer; S : Longint;

Begin S:=0; A:=1; Repeat

S:=S+A*A; A:=A+1

Until A>100; Writeln(Результат = ,S)

End. III. С использованием цикла «С параметром».

Program Ex3; Var

A : Integer; S : Longint;

Begin S:=0; For A:=1 To 100 Do

S:=S+A*A; Writeln(Результат = ,S)

End.

Массивы До сих пор мы рассматривали переменные, которые имели только одно

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

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

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

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

Одномерные массивы Описание типа линейного массива выглядит так:

Page 82: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

82

Type <Имя типа>=Array [<Диапазон индексов>] Of <Тип элементов>; В качестве индексов могут выступать переменные любых порядковых ти-

пов. При указании диапазона начальный индекс не должен превышать конечный.

Описать массив можно и сразу (без предварительного описания типа) в разделе описания переменных:

Var <имя массива> : Array [<Диапазон индексов>] Of <Тип элементов>; Примеры описания массивов: Var

A, B : Array [1..20] Of Integer; N : Array [1..40] Of Real;

Теперь переменные A, B представляют собой массивы из 20 целочислен-ных чисел; массив N – из 40 вещественных элементов.

Единственным действием, которое возможно произвести с массивом цели-ком – присваивание. Для данного примера описания впоследствии допустима следующая запись:

B:=A; Однако присваивать можно только массивы одинаковых типов. Никаких других операций с массивами целиком произвести невозможно,

но с элементами массивов можно работать точно так же, как с простыми пере-менными соответствующего типа. Обращение к отдельному элементу массива производится при помощи указания имени всего массива и в квадратных скоб-ках – индекса конкретного элемента. Например: N[10] – элемент массива N с индексом 10.

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

Ввод массива: а) С клавиатуры For I:=1 To 20 Do

Read (a[i]); б) Автоматическое формирование массива For I:=1 To 20 Do

a[i] := random (50)-25; Здесь был использован генератор случайных чисел random. Рассмотрим

его подробнее. Для формирования значения целого типа используется random с парамет-

ром, например random (50), который будет формировать случайным образом число из диапазона от 0 до числа, указанного в скобках минус единица, т. е. до 49. Для формирования не только положительных, но и отрицательных значений из полученного результата достаточно вычесть какое-либо число. Например, random (50) - 25 – будет формировать целое число в диапазоне от -25 до 24.

Page 83: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

83

Для формирования значения вещественного типа используется random без параметра. В этом случае формируется число в диапазоне от 0 до 1. Для увели-чения значения числа можно домножить полученное на 10, 100 и т. д. Для по-лучения отрицательных значений используется тот же прием, что и для целых чисел. Пример, random*100-50; .

Вывод массива: а) В строку For I:=1 to 20 Do

Write(A[I] :5) Формат вывода (:5) необходим в данном случае для того, чтобы элементы

массива не соединились в одно число и между ними были пробелы; б) В столбец For I:=1 to 20 Do

Writeln(A[I]) Указание формата вывода здесь не обязательно. При его указании столбец

будет сдвигаться вправо по экрану. Пример: сформировать массив случайным образом из 20 элементов в диа-

пазоне от -10 до 10 и вывести его в строку. Program M1; Var

A : Array [1..20] Of Integer; I : Integer;

Begin Randomize; For I:=1 To 20 Do

a[i] := random (11)-10; writeln(Массив А); For I:=1 to 20 Do

Write(A[I] :5) End.

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

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

Описание двумерного массива: Var A : Array [1..20,1..30] Of Integer; Описан двумерный массив, соответствующий таблице, состоящей из 20

строк и 30 столбцов. Отдельный элемент двумерного массива адресуется, естественно, двумя

индексами. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет называться A[5,6].

Ввод двумерного массива:

Page 84: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

84

а) С клавиатуры For i:=1 to 20 do

For j:=1 to 30 do Read (a[I,j]);

б) Автоматическое формирование массива For i:=1 to 20 do

For j:=1 to 30 do a[I,j] := random (50)-25;

Вывод двумерного массива в виде матрицы: For i:=1 to 20 do begin

For j:=1 to 30 do Write(A[i,j] :5)

Writeln; End; Для иллюстрации способов работы с двумерными массивами решим зада-

чу: «Задать и распечатать массив 10х10, состоящий из целых случайных чисел в интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали».

При отсчете, начиная с левого верхнего угла таблицы, главной будем счи-тать диагональ из левого верхнего угла таблицы в правый нижний. При этом получается, что элементы, лежащие на главной диагонали будут иметь одина-ковые индексы (i=j), а для элементов выше главной диагонали номер столбца будет всегда превышать номер строки (j>i).

Program M2; Uses Crt; Var

A : Array[1..10,1..10] Of Integer; i, j : Byte; S : Integer;

Begin Clrscr; Randomize; {формирование матрицы} For i:=1 to 10 do Begin

For j:=1 to 10 do Begin A[i,j]:=Random(100)+1;

{вывод матрицы} For i:=1 to 10 do Begin

For j:=1 to 10 do Write(A[i,j]:5);

Writeln: End; {подсчет суммы элементов выше главной диагонали} S:=0; For i:=1 to 10 do

For j:=1 to 10 do If j>i Then S:=S+A[i,j]

Writeln('Сумма элементов выше главной диагонали равна ',S) End.

Page 85: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

85

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

Процедуры и функции При решении сложных объемных задач часто целесообразно разбивать их

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

В языке Паскаль существует два вида подпрограмм: процедуры и функции. Процедуры и функции, используемые в программе, должны быть соответ-

ствующим образом описаны до первого их упоминания. Вызов процедуры или функции производится по их имени.

Подпрограммы в языке Паскаль могут иметь параметры (значения, переда-ваемые в процедуру или функцию в качестве аргументов). При описании ука-зываются так называемые формальные параметры (имена, под которыми бу-дут фигурировать передаваемые данные внутри подпрограммы) и их типы. При вызове подпрограммы вместе с ее именем должны быть заданы все необ-ходимые параметры в том порядке, в котором они находятся в описании. Зна-чения, указываемые при вызове подпрограммы, называются фактическими параметрами.

Формат описания процедуры: Procedure <Имя процедуры> (<Имя форм. параметра 1>:<Тип>;

< Имя форм. параметра 2>:<Тип>); <Раздел описаний> Begin

<Тело процедуры> End; Раздел описаний может иметь такие же подразделы, как и раздел описаний

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

Легко заметить схожесть структуры программы целиком и любой из ее процедур. Действительно, ведь и процедура, и основная программа реализуют некий алгоритм, просто процедура не дает решения всей задачи. Отличие в за-головке и в знаке после End.

Формат описания функции: Function <Имя функции> (<Имя форм. параметра 1>:<Тип>;

< Имя форм. параметра 2>:<Тип>) : <Тип результата>; <Раздел описаний>

Page 86: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

86

Begin <Тело функции>

End; В теле функции обязательно должна быть хотя бы команда присвоения та-

кого вида: <Имя функции>:=<Выражение>; Указанное выражение должно приводить к значению того же типа, что и

тип результата функции, описанный выше. Вызов процедуры представляет в программе самостоятельный оператор: <Имя процедуры>(<Фактический параметр 1>, < Фактический параметр

2>); Типы фактических параметров должны быть такими же, что и у соответст-

вующих им формальных. Вызов функции должен входить в выражение. При вычислении значения

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

Отличие функции от процедуры: 1. Заголовок функции начинается со служебного слова Function и заканчи-

вается указанием типа значения функции; 2. Раздел операторов функции должен содержать хотя бы один оператор

присваивания имени функции; 3. Обращение к функции – не оператор, а выражение. Приведем простейший пример использования подпрограммы. Задача: «Найти максимальное из трех введенных чисел». Для решения

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

Program Fn; Uses Crt; Var

A,B,C :Real; {глобальные переменные} Function Max(x,y:Real):Real; {Описываем функцию Max с формальными параметрами

x и y} Begin

If x>y Then Max:=x Else Max:=y; End; Begin {начало основной программы}

Clrscr; Writeln('Введите три числа'); Readln(A,B,C); Writeln('Максимальным из всех является ', Max(Max(A,B),C));

End. Обратите внимание на краткость тела основной программы и на прозрач-

ность действий внутри функции. Формальным параметрам x и y при первом вызове передаются значения переменных А и В, а затем полученное и С.

Существует два способа передачи фактических параметров в подпрограм-му: по значению и по ссылке. В первом случае значение фактического парамет-

Page 87: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

87

ра при вызове подпрограммы присваивается локальной переменной, являющей-ся формальным параметром подпрограммы. Что бы потом ни происходило с локальной переменной, это никак не отразится на соответствующей глобаль-ной. Для одних задач это благо, но иногда требуется произвести в подпрограм-ме действия над самими переменными, указанными в качестве фактических па-раметров. На помощь приходит второй способ. Происходит следующее: при обращении к подпрограмме не происходит формирования локальной перемен-ной – формального параметра. Просто на время выполнения подпрограммы имя этой локальной переменной будет указывать на ту же область памяти, что и имя соответствующей глобальной переменной. Если в этом случае изменить ло-кальную переменную, изменятся данные и в глобальной.

Передача параметров по ссылке отличается тем, что при описании подпро-граммы перед именем переменной – формального параметра ставится служеб-ное слово Var.

Еще один классический пример. Задача: «Расположить в порядке возраста-ния три целых числа».

Program Pr; Uses Crt; Var

S1,S2,S3 :Integer; {глобальные переменные} Procedure Swap(Var A,B: Integer); Var

C : Integer; {локальная переменная} Begin

C:=A; A:=B; B:=C {меняем местами содержимое A и B} End; Begin {начало основной программы}

Clrscr; Writeln('Введите три числа'); Readln(S1,S2,S3); If S1>S2 Then Swap(S1,S2); If S2>S3 Then Swap(S2,S3); If S1>S2 Then Swap(S1,S2); Writeln('Числа в порядке неубывания: ',S1,S2:4,S3:4)

End.

Контрольные вопросы 1. Приведите структуру программы на языке Паскаль. 2. Отличие константы от переменной в языке Паскаль. 3. Перечислите базовые типы данных в языке Паскаль. 4. Перечислите арифметические операции и стандартные функции над дан-

ными целого типа. 5. Перечислите арифметические операции и стандартные функции над дан-

ными вещественного типа. 6. Какие арифметические операции невозможны над данными вещественного

типа.

Page 88: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

88

7. Сколько памяти занимают данные целого, вещественного и символьного типа?

8. Какие значения принимают данные логического типа, и сколько места в памяти они занимают.

9. Привести таблицу истинности логических операций Not, And, Or. 10. Приведите формат оператора ввода. Приведите примеры оператора ввода. 11. Приведите формат оператора присваивания. Приведите примеры оператора

присваивания. 12. Приведите формат оператора вывода. Приведите примеры оператора. 13. Для чего нужно указание формата числа в операторе вывода? Приведите

примеры. 14. Приведите формат условного оператора. Приведите примеры. 15. Какие операторы цикла вы знаете? 16. Чем отличается цикл While от цикла Repeat? 17. Приведите формат оператора цикла While. Приведите пример оператора. 18. Приведите формат оператора цикла Repeat. Приведите пример оператора. 19. Приведите форматы оператора цикла For. Приведите пример оператора. 20. Чему равен шаг изменения параметра цикла (счетчика) в цикле For? 21. Что называется массивом? 22. Отличие одномерного массива от двумерного. 23. Как объявить одномерный массив? 24. Как объявить двумерный массив? Пример. 25. Приведите фрагмент ввода одномерного массива с клавиатуры. 26. Приведите фрагмент ввода двумерного массива с клавиатуры. 27. Приведите фрагмент формирования одномерного массива случайными

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

лами и укажите, какой диапазон чисел будет использован. 29. Приведите фрагмент вывода одномерного массива в строку. 30. Приведите фрагмент вывода двумерного массива в виде матрицы. 31. Какие виды подпрограмм вы знаете? 32. Когда используются подпрограммы? 33. Что должна иметь в своем составе любая подпрограмма? 34. Приведите формат процедуры. 35. Приведите формат функции. 36. Где объявляются локальные переменные, а где глобальные? 37. Что такое формальные и фактические параметры подпрограмм? 38. Что означает модификатор Var, стоящий перед формальным параметром? 39. Отличие процедуры от функции.

Page 89: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

89

Тема 7. Основные принципы построения компьютерных сетей

Значительное повышение эффективности ЭВМ может быть достигнуто

объединением их в вычислительные сети (ВС). Под вычислительной сетью понимают соединение двух и более ЭВМ средствами передачи данных (средст-вами телекоммуникаций) с целью совместного использования их ресурсов (процессоров, устройств памяти, устройств ввода/вывода, данных). Развитие ВС связано как с развитием собственно ЭВМ, входящих в состав сети, так и с развитием средств телекоммуникаций.

Вычислительная сеть – сложная система программных и аппаратных ком-понентов, взаимосвязанных друг с другом. Среди аппаратных средств сети можно выделить компьютеры и коммуникационное оборудование. Компьюте-ры, входящие в сеть, их характеристики определяют возможности вычисли-тельной сети. Но в последнее время и коммуникационное оборудование (кабельные системы, повторители, мосты, маршрутизаторы и др.) стало играть не менее важную роль.

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

Основные показатели качества ИВС 1. Полнота выполняемых функций. Сеть должна обеспечивать выполне-

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

2. Производительность – среднее количество запросов пользователей сети, исполняемых за единицу времени. Производительность зависит от време-ни реакции системы на запрос пользователя. Это время складывается из трех со-ставляющих:

времени передачи запроса от пользователя к узлу сети, ответственному за его исполнение;

времени выполнения запроса в этом узле; времени передачи ответа на запрос пользователю. 3. Значительную долю времени реакции составляет передача информации в

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

Page 90: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

90

ваемых через сеть (или ее звено – сегмент) за единицу времени. 4. Надежность сети – важная ее техническая характеристика. Надеж-

ность чаще всего характеризуется средним временем наработки на отказ. 5. Поскольку сеть является информационной системой, то более важной

потребительской характеристикой является достоверность ее результирующей информации (показатель своевременности информации поглощается достоверно-стью: если информация поступила несвоевременно, то в нужный момент на вы-ходе системы информация недостоверна). Существуют технологии, обеспечи-вающие высокую достоверность функционирования системы даже при ее низ-кой надежности. Можно сказать, что надежность информационной системы – это не самоцель, а средство обеспечения достоверной информации на ее выходе.

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

7. Прозрачность сети – еще одна важная потребительская ее характери-стика. Прозрачность означает невидимость особенностей внутренней архитек-туры сети для пользователя: в оптимальном случае он должен обращаться к ре-сурсам сети как к локальным ресурсам своего собственного компьютера.

8. Масштабируемость – возможность расширения сети без заметного снижения ее производительности.

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

Виды информационно-вычислительных сетей Информационно-вычислительные сети (ИВС) в зависимости от террито-

рии, ими охватываемой, подразделяются на: локальные (ЛВС или LAN – Local Area Network); региональные (РВС или MAN – Metropolitan Area Network); глобальные (ГВС или WAN – Wide Area Network). Локальной называется сеть, абоненты которой находятся на небольшом

(до 10–15 км) расстоянии друг от друга. ЛВС объединяет абонентов, располо-женных в пределах небольшой территории. В настоящее время не существует четких ограничений на территориальный разброс абонентов локальной вычис-лительной сети. Обычно такая сеть привязана к конкретному объекту. К классу ЛВС относятся сети отдельных предприятий, фирм, банков, офисов, корпора-ций и т. д. Если такие ЛВС имеют абонентов, расположенных в разных поме-щениях, то они (сети) часто используют инфраструктуру глобальной сети Интернет и их принято называть корпоративными сетями или сетями интра-нет (Intranet).

Региональные сети связывают абонентов города, района, области или да-же небольшой страны. Обычно расстояния между абонентами региональной ИВС составляют десятки – сотни километров.

Page 91: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

91

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

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

По принципу организации передачи данных сети можно разделить на две группы:

последовательные; широковещательные. В последовательных сетях передача данных выполняется последовательно

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

По геометрии построения (топологии) ИВС могут быть: шинные (линей-ные, bus), кольцевые (петлевые, ring), радиальные (звездообразные, star), рас-пределенные радиальные (сотовые, cellular), иерархические (древовидные, hier-archy), полносвязные (сетка, mesh), смешанные (гибридные).

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

Шинная топология – одна из наибо-лее простых топологий. Такую сеть легко наращивать и конфигурировать, а

Рис. 7.1. Сеть с шинной топологией

Page 92: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

92

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

Сеть шинной топологии применяют широко известная сеть Ethernet и ор-ганизованная на ее адаптерах сеть Novell NetWare, очень часто используемая в офисах, например. Условно такую сеть можно изобразить, как показано на рис. 7.1.

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

Ввиду своей гибкости и надежности работы сети с кольцевой топологией получили также широкое распространение на практике (например, сеть Token Ring).

Условная структура такой сети показана на рис. 7.2.

Рис. 7.2. Сеть с кольцевой топологией

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

В качестве недостатков такой сети можно отметить: большую загруженность центральной аппаратуры; полную потерю работоспособности сети при отказе центральной аппаратуры;

Page 93: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

93

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

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

Рис. 7.3. Сеть с радиальной топологией

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

Контрольные вопросы 1. Что понимают под вычислительной сетью? 2. Основное назначение вычислительных сетей. 3. Что составляют аппаратные средства сети? 4. Что включают в себя программные компоненты сети? 5. Перечислить основные показатели качества сети. 6. Что понимается под производительностью сети? 7. Что понимается под пропускной способностью сети? 8. Что понимается под безопасностью сети? 9. Что понимается под прозрачностью сети? 10. Что понимается под масштабируемостью сети? 11. Что понимается под универсальностью сети? 12. Перечислите и охарактеризуйте виды сетей в зависимости от территории. 13. Что такое корпоративная сеть? 14. Перечислите и охарактеризуйте виды сетей по принципу организации пере-

дачи данных. 15. Перечислите и охарактеризуйте виды сетей по топологии. 16. Охарактеризуйте принципы работы сетей с разными топологиями. Их дос-

тоинства и недостатки.

Page 94: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

94

Тема 8. Способы связи компьютеров

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

Рис. 8.1. Способы соединения компьютеров и виды сетей:

а – временная сеть; б – локальные сети; в – сети, организованные с помощью каналов связи

Соединение компьютеров через порты

Временная сеть из двух ПК

Локальные сети Соединение с использованием сетевой карты

Нуль-модемный кабель

Инфракрасный луч

Одноранговая сеть

Иерархическая сеть

Соединение по каналам связи

Распределенные специальные сети

Глобальные сети общего доступа (в том числе Интернет)

Другие способы связи ПК

Прямая связь

Удаленный доступ в сеть

BBS

в

а

б

Page 95: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

95

Простейшая компьютерная сеть. Она образуется при соединении двух не-далеко отстоящих друг от друга компьютеров (в пределах 10–20 м) с по-мощью специального кабеля, называемого нуль-модемом, который подключает-ся к последовательным или параллельным портам обоих компьютеров. Такое временное соединение называется прямым компьютерным соединением (ПКС). Оно может быть установлено, а затем снято любым конечным пользователем. В настоящее время получают развитие инфракрасные порты, позволяющие ор-ганизовать указанный вид соединения напрямую, без кабеля. ПКС используется в основном для обмена информацией между портативным и стационарным персональным компьютером, например, офиса, хотя такой обмен возможен и между двумя стационарными ПК.

Локальная вычислительная сеть. Расположенные на небольшом расстоя-нии компьютеры (на удалении в пределах 50–100 м внутри одного или сосед-них зданий), между которыми необходимо организовать постоянный информа-ционный обмен, стационарно соединяются специально предназначенными для этих целей кабелями. Сеть указанного типа называется локальной вычислитель-ной сетью (ЛВС).

Распределенная сеть. Значительно удаленные друг от друга компьютеры (например, расположенные в разных концах города или в разных городах), ме-жду которыми необходимо организовать постоянный обмен большими потока-ми информации, соединяются специальными постоянно действующими выделен-ными каналами. Физически выделенные каналы могут реализовываться с по-мощью телефонных каналов или оптических кабелей, а также с помощью спутниковых или радиоканалов. С помощью выделенных каналов обычно со-единяются удаленные друг от друга компьютеры одной организации (напри-мер, компьютеры центрального офиса банка с компьютерами в его филиалах). Сети, связывающие значительно удаленные друг от друга компьютеры, называ-ются распределенными. Доступ к распределенным сетям организаций ограничен определенным кругом лиц, для которых работа в таких сетях связана с выполне-нием их должностных обязанностей. По своему функциональному назначению сети подобного типа эквивалентны локальным и называются региональными.

Региональная сеть организации, в которой создана специальная коммуни-кационная система обмена сообщениями (электронная почта, факс, совместная работа над документами), называется корпоративной. Термин корпоративная сеть используется в литературе и для обозначения объединения нескольких се-тей, каждая из которых может быть построена на различных технических, про-граммных и информационных принципах.

Глобальная сеть. Сеть компьютеров, распределенных по всему миру и по-стоянно связанных каналами с очень высокой пропускной способностью, на которых имеется большой объем разнообразной информации, доступной на коммерческой основе всем желающим, называется глобальной сетью. Наибо-лее известным представителем таких сетей является Интернет, хотя имеются и другие глобальные сети (MSN – Microsoft on Line, America on Line и др.).

Page 96: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

96

Связь с помощью телефонной сети. Временная связь между удаленными ПК с помощью обычной телефонной сети через АТС может быть установлена с помощью устройства, называемого модемом (факс-модем). Такой способ связи называется связью по коммутируемому каналу. С помощью модема можно орга-низовать информационный обмен между обычными компьютерами, можно подключиться к локальной сети офиса или к глобальной сети.

Контрольные вопросы 1. Перечислите способы соединения компьютеров и виды сетей. 2. Что представляет собой временная (простейшая) компьютерная сеть? 3. Что такое нуль-модем? 4. Назначение выделенных каналов связи. Как они реализуются физически? 5. Что называется распределенными сетями? Какие сети к ним относятся? 6. Что называется глобальной сетью? Приведите пример глобальной сети. 7. Что называется связью по коммутируемому каналу? 8. Что называется разделяемым (сетевым) ресурсом?

Page 97: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

97

Тема 9. Модель взаимодействия открытых систем OSI

Для согласованной работы двух разных устройств необходимо иметь со-глашение, требованиям которого будет удовлетворять работа каждого устрой-ства. Соглашение, как правило, оформляется в виде стандарта.

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

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

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

Международной организацией по стандартизации (ISO – International Organization for Standardization) разработана система стандартных протоколов, получившая название модели взаимодействия открытых систем (Open System Interconnection – OSI), часто называемая также эталонной семиуровне-вой логической моделью открытых систем.

Открытая система – система, доступная для взаимодействия с другими системами в соответствии с принятыми стандартами.

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

Итак, для упорядочения функций управления и протоколов вычислитель-ной сети вводятся функциональные уровни. В общем случае сеть должна иметь семь функциональных уровней.

Физический уровень На физическом уровне определяются характеристики электрических сиг-

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

Функции физического уровня на компьютере выполняются сетевым адаптером.

Page 98: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

98

Канальный уровень Канальный уровень решает две задачи. Первая задача – определение дос-

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

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

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

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

Сетевой уровень На сетевом уровне решаются вопросы объединения сетей с разными топо-

логиями, с разными принципами передачи данных между конечными узлами для образования единой транспортной системы. Здесь сеть является не просто объединением компьютеров, но соединением по одной из типовых технологий, использующим для передачи данных один из протоколов канального уровня. Сетевой уровень решает вопросы обмена данными между сетями. Обмен дан-ными осуществляется порциями, которые называются пакетами (пакет – блок данных сетевого уровня). Каждый пакет, кроме адреса компьютера, снабжается адресом сети как получателя, так и отправителя.

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

Page 99: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

99

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

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

Транспортный уровень На транспортном уровне решаются вопросы обеспечения надежности пе-

редачи данных, обнаружения и исправления ошибок передачи (искажение, по-теря и дублирование пакетов). Сегмент – блок данных транспортного уровня.

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

Протоколы транспортного уровня и выше реализуются программными средствами узлов сети, компонентами сетевых систем.

Сеансовый уровень На сеансовом уровне реализуются средства синхронизации, при помощи

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

Отдельные протоколы сеансового уровня обычно не используются. Его функции реализуются в протоколах прикладного уровня.

Представительский уровень Функции уровня представления заключаются в преобразовании формы

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

На уровне представления также обеспечивается секретность обмена дан-ными для всех служб прикладного уровня.

Прикладной уровень Протоколы прикладного уровня обеспечивают доступ пользователей к

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

Page 100: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

100

Блоки информации, передаваемые между уровнями, имеют стандартный формат: заголовок (header), служебная информация, данные, концевик. Каждый уровень при передаче блока информации нижестоящему уровню снабжает его своим заголовком. Заголовок вышестоящего уровня воспринимается ниже-стоящим как передаваемые данные.

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

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

называется стеком коммуникационных протоколов. Указанные уровни управления можно по разным признакам объединять в

группы: уровни 1, 2 и, частично, 3 реализуются в большей части за счет аппаратных

средств; верхние уровни с 4 по 7 и, частично, 3 обеспечиваются программными средствами;

уровни 1 и 2 обслуживают абонентскую подсеть, уровни 3 и 4 – коммуни-кационную подсеть, уровни 5–7 обслуживают прикладные процессы, выполняе-мые в сети;

уровни 1 и 2 ответственны за физические соединения; уровни 3–6 заняты организацией передачи, передачей и преобразованием информации в понятную для абонентской аппаратуры форму; уровень 7 обеспечивает выполнение при-кладных программ пользователя.

Контрольные вопросы 1. Что такое протокол сети? 2. Что такое система OSI? Сколько уровней она содержит? 3. Как называются блоки данных на каждом уровне OSI? 4. Охарактеризуйте кратко физический уровень OSI. 5. Охарактеризуйте кратко канальный уровень OSI. 6. Охарактеризуйте кратко сетевой уровень OSI. 7. Охарактеризуйте кратко транспортный уровень OSI. 8. Охарактеризуйте кратко сеансовый уровень OSI. 9. Охарактеризуйте кратко представительский уровень OSI. 10. Охарактеризуйте кратко прикладной уровень OSI.

Page 101: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

101

Тема 10. Техническое и программное обеспечение ИВС

Техническое обеспечение информационно-вычислительных се-тей

Структурно ИВС содержит: компьютеры (хост-компьютеры, сетевые компьютеры, рабочие станции,

серверы), размещенные в узлах сети; аппаратуру и каналы передачи данных, с сопутствующими им периферий-

ными устройствами; интерфейсные платы и устройства (сетевые платы, модемы); маршрутизаторы и коммутационные устройства.

Серверы и рабочие станции

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

Рабочая станция (workstation) – подключенный к сети компьютер, через который пользователь получает доступ к ее ресурсам. Часто рабочую станцию (равно как и пользователя сети, и даже прикладную задачу, выполняемую в се-ти) называют клиентом сети. В качестве рабочих станций могут выступать как обычные и мощные компьютеры, так и специализированные – «сетевые компьютеры».

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

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

Page 102: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

102

грузки операционной системы с сервера сети (это классический «тонкий кли-ент» сети). Для работы, например, в интранет-сети такой компьютер должен иметь столько вычислительных ресурсов, сколько требует web-браузер.

Сервер (server) – это выделенный для обработки запросов от всех рабочих станций сети многопользовательский компьютер, предоставляющий этим стан-циям доступ к общим системным ресурсам (вычислительным мощностям, ба-зам данных, библиотекам программ, принтерам, факсам и т. д.) и распределяю-щий эти ресурсы. Сервер имеет свою сетевую операционную систему, под управлением которой и происходит совместная работа всех звеньев сети. Из наиболее важных требований, предъявляемых к серверу, следует выделить высокую производительность и надежность работы.

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

Серверы в сети часто специализируются. Специализированные серверы используются для устранения наиболее «уз-

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

Примеры специализированных серверов. 1. Файл-сервер (File Server) предназначен для работы с базами данных,

имеет объемные дисковые запоминающие устройства, часто на отказоустойчи-вых дисковых массивах RAID емкостью до терабайта.

2. Сервер резервного копирования (Storage Express System) применяется для резервного копирования информации в крупных многосерверных сетях, ис-пользует накопители на магнитной ленте (стримеры) со сменными картриджа-ми емкостью до 5 Гбайт; обычно выполняет ежедневное автоматическое архи-вирование со сжатием информации от серверов и рабочих станций по сцена-рию, заданному администратором сети (естественно, с составлением каталога архива).

3. Факс-сервер (Fax server) – выделенная рабочая станция для организации эффективной многоадресной факсимильной связи, с несколькими факс-

Page 103: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

103

модемными платами, со специальной защитой информации от несанкциониро-ванного доступа в процессе передачи, с системой хранения электронных факсов (один из вариантов – Net SatisFAXion Software в сочетании с факс-модемом SatisFAXion).

4. Почтовый сервер (Mail Server) – то же, что и факс-сервер, но для орга-низации электронной корреспонденции, с электронными почтовыми ящиками.

5. Сервер печати (Print Server) предназначен для эффективного использо-вания системных принтеров.

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

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

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

Маршрутизаторы и коммутирующие устройства

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

Узлы коммутации вычислительных сетей содержат устройства коммута-ции (коммутаторы). Если они выполняют коммутацию на основе иерархиче-ских сетевых адресов, их называют маршрутизаторами.

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

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

Page 104: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

104

нения. При обычных режимах пакетов и сообщений маршрутизация выполня-ется непрерывно по мере прохождения данных от одного узла коммутации к другому.

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

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

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

Концентраторы-хабы могут быть трех типов: пассивными, просто соединяющими сегменты сети одного типа, ничего

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

(регенерирование) сигналов (они, как и повторители, позволяют увеличить рас-стояние между соединяемыми устройствами);

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

Модемы и сетевые карты

Модем (МОдулятор-ДЕМодулятор) – устройство прямого (модулятор) и обратного (демодулятор) преобразования сигналов к виду, принятому для ис-пользования в определенном канале связи.

Модемы бывают самые разные, но в первую очередь их можно разделить на аналоговые и цифровые.

Аналоговые модемы Первоначально аналоговый модем был предназначен для выполнения сле-

дующих функций: преобразование широкополосных импульсов (цифрового кода) в узко-

полосные аналоговые сигналы – при передаче;

Page 105: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

105

фильтрация принятого сигнала от помех и детектирования, то есть об-ратного преобразования узкополосного аналогового сигнала в цифровой код – при приеме.

Модемы различаются также: конструкцией – автономные (внешние) и встраиваемые (внутренние) в

аппаратуру; интерфейсом с каналом связи – контактные и бесконтактные (аудио); назначением – для разных каналов связи и систем, например для систем

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

скоростью передачи – существует стандарт скоростей (шкала) передачи данных, соответствующий стандарту протоколов МККТТ для телефонных ка-налов связи. Он включает следующие скорости (в бит/с): 300, 600, 1200, 2400, 4800, 9600, 12 000, 14 400, 16 800, 19 200, 28 800, 33 600, 56 000. Сейчас в продаже в основном модемы со скоростью 56 000 бит/с.

Внутренний модем представляет собой плату, вставляемую в разъем внут-ренней платы устройства, например в слот системной платы компьютера, имеющей евроразъем типа RJ-11 для подключения к телефонной линии связи.

Внешний модем – это самостоятельная конструкция, обычно в виде не-большой коробочки, оснащенная блоком питания, разъемами для подключения к аппаратуре (к последовательному порту компьютера – RS-232) и телефонному каналу (разъем RJ-11), а также панелью с индикаторами. Индикаторы дают ин-формацию о режимах работы модема.

Модемы для цифровых каналов связи Развивающиеся цифровые технологии передачи данных, обеспечивающие

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

Цифровые модемы выпускаются для работы в конкретных цифровых тех-нологиях: ISDN, HDSL, ADSL, SDSL и т. д.

Так, например, модемы для работы в ISDN бывают как внутренними, так и внешними. Внутренние модемы могут использовать или ISA-, или PCI-слоты на материнской плате, и они обеспечивают максимальную скорость 128 Кбит/с. Внешние модемы подключаются к компьютеру по последовательной шине USB, и скорость передачи у них ограничивается величиной 115,2 Кбит/с. Имеются ком-бинированные модемы для работы как по цифровым каналам ISDN, так и по аналоговым каналам (например, модем Courier-1 компании 3Com).

Page 106: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

106

Модемы для работы в сетях xDSL имеют большие скорости, так, ADSL-модемы обеспечивают скорости 1,5–6 Мбит/с при приеме информации и 64–384 Кбит/с – при передаче. А вот ADSL-модем Viper-DSL компании 3Com даже большие: 7 Мбит/с для входящих и 1 Мбит/с для исходящих сообщений. Но наибольшие скорости обеспечивают VDSL-модемы: при передаче данных на короткое расстояние до 300 м достигается скорость 2,3 Мбит/с, а при приеме – 51,8 Мбит/с (при работе на больших расстояниях скорости существенно уменьшаются).

Выпускаются также: кабельные модемы для работы с сетями через коммуникации кабельного

телевидения, например. Они обеспечивают скорости передачи данных в сред-нем до 10 Мбит/с, но сверхскоростной модем UBR 904 компании Cisco позво-ляет принимать данные со скоростью до 36 Мбит/с и передавать со скоростью до 2 Мбит/с;

сотовые модемы для работы в системе сотовой телефонной связи. Это обычно PCMCIA-модемы для работы в стандартах GSM, CDMA, NMT, NAMPS и т. д. Первые два стандарта являются цифровыми, а последние – аналоговыми;

оптоволоконные модемы для работы по волоконно-оптическим каналам связи по протоколам FDDI;

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

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

Сетевые карты Вместо модема в локальных сетях можно использовать сетевые адаптеры

(сетевые карты, network adapter, net card), выполненные в виде плат расшире-ния, устанавливаемых в разъем материнской платы. Еще есть карты, устанавли-ваемые в разъем ISA, но современные устанавливаются обычно в разъем PCI. Для портативных компьютеров имеются PCMCIA-адаптеры. Появились сетевые адаптеры и для интерфейса USB.

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

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

Адаптеры для серверов снабжаются собственными процессорами, выпол-няющими всю нужную работу.

Page 107: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

107

Основными характеристиками сетевых карт являются: установленная микросхема контроллера (микрочипа); разрядность – имеются 8-, 16-, 32- и 64-битовые сетевые карты (определя-

ется микрочипом); скорость передачи – от 10 до 1000 Мбит/с (наиболее популярные — 10 и

100 Мбит/с); тип подключаемого кабеля – коаксиальный кабель толстый и тонкий,

неэкранированная витая пара, волоконно-оптический кабель; поддерживаемые стандарты передачи данных – Ethernet, IEEE 802.3,

Token Ring, FDDI и т. д. Микросхема контроллера имеет важнейшее значение, она определяет мно-

гие параметры адаптера, в том числе надежность и стабильность работы. На сетевых картах может быть установлен также чип ПЗУ BootROM, обес-

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

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

Устройства межсетевого интерфейса

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

В качестве межсетевого интерфейса для соединения сетей между собой используются:

повторители; мосты; маршрутизаторы; шлюзы. Повторители (repiter) – устройства, усиливающие электрические сигналы и

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

Page 108: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

108

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

Мосты (bridge) описываются протоколами сетевого уровня OSI. Они регули-руют трафик (передачу данных) между сетями, использующими одинаковые прото-колы передачи данных на сетевом и выше уровнях, выполняя фильтрацию ин-формационных пакетов в соответствии с адресами получателей. Мост может со-единять сети разных топологий, но работающие под управлением однотипных сетевых операционных систем. Мосты бывают локальными и удаленными. Локальные мосты соединяют сети, расположенные на ограниченной территории в пределах уже существующей системы. Удаленные мосты «прокладываются» между разнесенными территориально сетями с помощью внешних каналов связи и модемов.

Маршрутизаторы (router) выполняют свои функции на транспортном уровне протоколов модели OSI и обеспечивают соединение логически не свя-занных сетей (имеющих одинаковые протоколы на сеансовом и выше уровнях OSI); они анализируют сообщение, определяют его дальнейший наилучший путь, выполняют его некоторое протокольное преобразование для согласования и передачи в другую сеть, создают нужный логический канал и передают сообще-ние по назначению. Маршрутизаторы предоставляют достаточно сложный уро-вень сервиса: они могут, например, соединять сети с разными методами досту-па; могут перераспределять нагрузки в линиях связи, направляя сообщения в обход наиболее загруженных линий и т. д.

Шлюзы (gateway) – устройства, позволяющие объединить вычислительные сети, использующие различные протоколы OSI на всех ее уровнях; они выпол-няют протокольное преобразование для всех семи уровней управления модели OSI. Кроме функций маршрутизаторов они выполняют еще и преобразование формата информационных пакетов и их перекодирование, что особенно важно при объединении неоднородных сетей.

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

Использование устройств межсетевого интерфейса по уровням управления показано на рис. 10.1.

Page 109: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

109

Программное обеспечение информационно-вычислительных сетей

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

Сетевое программное обеспечение состоит из трех составляющих: общего программного обеспечения; системного программного обеспечения; специального программного обеспечения. Общее программное обеспечение образуется из компонентов базового про-

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

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

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

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

Сетевая операционная система (СОС) включает в себя набор управляющих и обслуживающих программ, обеспечивающих:

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

щесетевыми ресурсами; контроль работоспособности элементов сети и обеспечение достоверно-

сти входной и выходной информации; защиту данных и вычислительных ресурсов от несанкционированного дос-

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

технических ресурсов сети.

Page 110: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

110

Функциональные возможности операционных систем расширяются с по-мощью утилит – специальных программ, используемых операционной систе-мой для выполнения прикладных функций.

Контрольные вопросы 1. Что такое сервер и рабочая станция (клиент)? 2. Перечислите и дайте краткую характеристику специализированных серверов. 3. Что такое хост-компьютеры? 4. Что такое модем и какие виды модемов вы знаете? 5. Охарактеризуйте внутренний и внешний модемы. 6. Отличие цифровых модемов от аналоговых. 7. Что представляет собой сетевая карта, перечислите основные характеристики. 8. Какие устройства межсетевого интерфейса вы знаете? 9. Назначение повторителя как устройства межсетевого интерфейса. 10. Назначение моста как устройства межсетевого интерфейса. 11. Назначение маршрутизатора как устройства межсетевого интерфейса. 12. Назначение шлюза как устройства межсетевого интерфейса. 13. Что входит в сетевое программное обеспечение?

Page 111: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

111

Тема 11. Локальные вычислительные сети

Локальной вычислительной сетью (ЛВС) называют сеть, элементами кото-рой являются вычислительные машины (в том числе мини- и микрокомпьюте-ры), терминалы, связная аппаратура — располагаются на сравнительно неболь-шом удалении друг от друга (до 10 км).

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

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

Связь ЛВС с сетью Интернет может выполняться через хост-компьютер, в качестве которого может использоваться web-сервер или сервер-шлюз (часто именуемый прокси-сервером) – рабочая станция, имеющая специализирован-ное программное обеспечение для непосредственной работы в Интернете.

Виды локальных сетей Локальная сеть может объединять до нескольких сотен компьютеров, ста-

ционарно соединенных кабелями. Соединение компьютеров кабелями органи-зуется различным способом, образуя различную топологию сети (звездную, шинную, кольцевую и т. д.). Кабели подсоединяются к ПК через специальное устройство, называемое сетевой картой, или сетевым адаптером. Это устройство вставляется в слот расширения на материнской плате компьютера. Имеются ма-теринские платы со встроенным сетевым адаптером. Сетевые адаптеры (АrсNet, Ethernet, TokenRing) различаются производительностью (скоростью передачи данных) и соответственно стоимостью, например, для сети с числом ПК до 50 обычно применяются недорогие адаптеры класса Ethernet.

Для построения сети используются и другие сетевые устройства (хабы, концентраторы, повторители и др.) различной сложности и стоимости. Приме-няемые технические средства и топология сети в совокупности определяют на-дежность функционирования и скорость передачи информации в такой сети: от 100 Мбит/с до 1 Гбит/с.

По количеству подключенных к сети компьютеров сети можно разделить на малые, объединяющие до 10–15 машин, средние – до 50 машин и большие – свы-ше 50 машин.

По территориальной расположенности ЛВС делятся на компактно разме-щенные (все компьютеры расположены в одном помещении) и распределенные (компьютеры сети размещены в разных помещениях).

Page 112: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

112

По топологии ЛВС делятся на шинные, кольцевые, радиальные, полно-связные, иерархические и смешанные.

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

По организации управления ЛВС делятся на: ЛВС с централизованным управлением; ЛВС с децентрализованным управлением. На этих классах ЛВС остановимся немного подробнее. В ЛВС наиболее важными (видимыми) для пользователя являются два

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

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

• одноранговая сеть (рис. 11.1) – это сеть равноправных компьютеров –рабочих станций, каждый из которых имеет уникальное имя – имя компьютера и пароль для входа в компьютер в момент загрузки операционной системы. Имя и пароль входа назначаются владельцем ПК средствами ОС и BIOS. В такой сети могут быть организованы «подсети» – так называемые группы, каждая из кото-рых имеет имя, например «Бухгалтерия».

ПК 1

ПК 2

ПК 3

ПК 4

ПК 5

ПК N

Рис. 11.1. Схема соподчинения ПК в одноранговой сети.

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

Page 113: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

113

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

Доступ к «чужим ресурсам» в такой сети организован на уровне ресурсов. Это означает, что доступ к сетевым ресурсам рабочей станции получает любой компьютер, входящий в ту же группу, что и «владелец ресурса». Доступ к сете-вым ресурсам компьютеров другой группы невозможен. Понятие пользователь в такой сети отсутствует, а точнее совпадает с понятием компьютер группы. В одноранговой сети каждая рабочая станция может одновременно как предос-тавлять свои ресурсы другим компьютерам группы (быть сервером), так и использовать ресурсы других ПК (быть клиентом). Сети этого вида часто ор-ганизуются в небольших офисах для объединения в сеть небольшого числа компьютеров (10–15 ПК). Создание и эксплуатация такой сети не требуют вы-сокого профессионализма и наличия специального лица – системного админи-стратора, ответственного за функционирование сети;

• иерархические сети (рис. 11.2) – это сети, в которых имеется мощный компьютер – выделенный сервер, ресурсы которого предоставляются другим со-единенным с ним компьютерам – рабочим станциям. Ресурсы рабочих станций серверу, как правило, недоступны. Иерархические сети организуются при большом количестве рабочих станций. В сравнении с одноранговыми сетями они обеспечивают более высокое быстродействие и надежность работы сети, повышают конфиденциальность и надежность хранения информации и др.

СЕРВЕР

ПК 1 ПК 2 ПК 3 ПК 4 ПК 5 ПК N

Рис. 11.2. Иерархическая сеть

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

Page 114: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

114

Наряду с классическими сетями указанных выше двух видов возможна ор-ганизация сетей и более сложных видов:

• сочетание одноранговой и иерархической сети, в которой рабочие стан-ции могут быть как подключены к выделенному серверу по принципу иерархи-ческой сети, так и объединены между собой в одноранговую сеть;

• иерархическая сеть с несколькими выделенными серверами; • иерархическая сеть, в которой есть несколько уровней иерархии серверов,

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

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

Базовые технологии локальных сетей Для упрощения и удешевления аппаратных и программных средств в ло-

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

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

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

подуровень логической передачи данных – LLC (Logical Link Control); подуровень управления доступом к сети – MAC (Media Access Control). Подуровень логической передачи данных у большинства протоколов, в том

числе и у семейства IEEE 802.x, включающего в себя основные протоколы ЛВС, один и тот же. (К основным протоколам ЛВС относятся: IEEE 802.2 – это протокол логической передачи данных LLC; МАС-протоколы доступа к сети:

Page 115: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

115

IEEE 802.3 – Ethernet – эти протоколы почти одинаковы; IEEE 802.4 – Token Bus, IEEE 802.5 – Token Ring и т. д.).

Самая распространенная в настоящее время технология (количество сетей, ис-пользующих эту технологию, превысило 5 млн с числом компьютеров в этих сетях более 50 млн) создана в конце 70-х годов и в первоначальном варианте использовала в качестве линии связи коаксиальный кабель. Но позже было раз-работано много модификаций этой технологии, рассчитанных и на другие ком-муникации. Технологии Ethernet и IEEE 802.3 во многом похожи; последняя поддерживает не только топологию «общая шина», но и топологию «звезда». Спецификация Ethernet поддерживает случайный метод доступа (метод состя-заний), и ее популярность объясняется надежными, простыми и недорогими технологиями.

Технология IEEE 802.5/Token Ring поддерживает кольцевую (основная) и радиальную (дополнительная) топологии сетей, для доступа к моноканалу использующих метод передачи маркера (его называют также детерминирован-ным маркерным методом). Реализация этой технологии существенно более до-рога и сложна, нежели технологии Ethernet, но она тоже достаточно распро-странена.

Технология ARCNet (Attached Resourse Computer Network, компьютерная сеть с присоединяемыми ресурсами) – это относительно недорогая, простая и надежная в работе технология, используемая только в сетях с персональными компьютерами. Она поддерживает разнообразные линии связи, включая коак-сиальный кабель, витую пару и волоконно-оптический кабель. Обслуживаемые ею топологии – радиальная и шинная с доступом к моноканалу по методу пере-дачи полномочий.

Технология FDDI (Fiber Distributed Data Interface, волоконно-оптический интерфейс распределенных данных) во многом базируется на технологии Token Ring, но ориентирована на волоконно-оптические линии связи (есть возмож-ность использовать и неэкранированную витую пару) и обеспечивает передачу данных по кольцу длиной до 100 км с максимальным числом узлов 500 и со скоростью 100 Мбит/с. Используется детерминированный маркерный метод дос-тупа без выделения приоритетов. Ввиду большой стоимости технология внедряется в основном в магистральных каналах и крупных сетях.

Построение локальных сетей

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

Принцип использования разделяемой среды передачи данных позволяет стро-ить эффективные вычислительные сети. Простота используемых протоколов обеспе-чивает невысокую стоимость построения сети. Пропускная способность достигает 100 Мбит/с и даже 1000 Мбит/с. Благодаря простой топологии такие сети обладают хорошей расширяемостью. Но масштабируемость таких сетей оставляет желать лучшего. С увеличением количества подключаемых компьютеров полезная пропускная способность сети резко уменьшается. Существует ограничение на коли-

Page 116: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

116

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

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

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

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

Построение локальных сетей средствами сетевого уровня

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

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

Управление потоком информации при помощи коммутаторов на основе лишь данных кадра достаточно сложно.

Сегментация вычислительной сети при помощи коммутаторов изолирует подсети в недостаточной мере в смысле защиты от широковещательных сообще-ний (широковещательных штормов).

В разных сегментах вычислительной сети возможно использование разных ба-зовых технологий. Но должна совпадать система адресации узлов. Например, Ethernet, Token Ring, FDDI, Fast Ethenet используют адресацию на основе МАС-адресов, а Х.25, ATM, Frame Relay – другие системы адресации.

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

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

Page 117: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

117

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

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

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

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

вого и выше, согласно модели OSI. В общем случае сетевая ОС, установленная на отдельном компьютере, имеет

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

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

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

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

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

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

Page 118: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

118

Клиент обычно не предоставляет пользователям сети свои локальные ресур-сы. На компьютер-клиент не устанавливаются какие-либо сетевые службы. Это обычный персональный компьютер с установленной на нем локальной ОС и урезанным набором сетевых функций. Компьютер-клиент посылает запрос в сеть для получения доступа к сетевым ресурсам или услугам и обрабатывает получен-ный ответ.

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

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

Признанными лидерами сетевых ОС с выделенным сервером являются Windows NT и Novell NetWare.

Контрольные вопросы 1. Назначение локальной сети. 2. Как выполняется связь локальной сети с сетью Интернет? 3. Классификация локальных вычислительных сетей (по количеству подклю-

ченных к сети компьютеров, по территориальной расположенности, по тополо-гии, по типам используемых компьютеров).

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

5. Отличие одноранговой сети от иерархической. 6. Отличие коммутатора от концентратора. 7. Что является основной задачей маршрутизатора? 8. Из каких частей состоит сетевая ОС?

Page 119: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

119

Тема 12. Глобальная сеть Интернет

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

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

Интернет представляет собой объединение нескольких десятков тысяч ло-кальных сетей, за что она и получила название СЕТЬ СЕТЕЙ. Каждая локаль-ная сеть называется УЗЛОМ или САЙТОМ, а юридическое лицо, обеспечи-вающую работу сайта, – ПРОВАЙДЕРОМ. Сайт состоит из нескольких компь-ютеров – СЕРВЕРОВ, каждый из которых предназначен для хранения инфор-мации определенного типа и в определенном формате. Каждый сайт и сервер на сайте имеют уникальные имена, посредством которых они идентифицируются в Интернете.

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

Информационные ресурсы (службы) Интернет Информационные ресурсы в Интернете различаются способом организа-

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

WORLD WIDE WEB (WWW) – Всемирная информационная паутина. Это наиболее популярная и динамично развивающаяся в настоящее время сис-тема. Информация в ней состоит из страниц (документов). Страницы могут со-держать графику, а их чтение – сопровождаться анимацией и звуком, воспроиз-водимыми непосредственно в процессе поступления информации на экран пользователя. Посредством WWW можно смотреть видеофильмы, слушать му-зыку, играть в компьютерные игры, обращаться к разнообразным информаци-

Page 120: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

120

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

Работа с ресурсами WWW обеспечивается специальными программами - браузерами. Браузер может работать в сети или автономно вне Интернета. Послед-нее требуется, например, для просмотра файлов в формате HTML, ранее запомнен-ных на ПК или поставленных на CD-ROM. В автономном режиме браузер позволя-ет создавать собственные WWW-страницы, хотя для этих целей имеются и другие специальные средства.

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

WWW-страницы создаются на специальном языке (в формате) HTML – Hyper-text Markup Language.

FTP-система (File Transfer Program). Эта система служит для пересылки файлов. Файлы становятся доступными для работы только после копирования на собственный компьютер пользователя. Хотя пересылка файлов может быть выполнена и с помощью WWW, FTP-системы продолжают оставаться весьма популярными ввиду их быстродействия и простоты использования.

Обычный вид DNS-имени: ftp. < имя фирмы>.com, например ftp.Microsoft.com. Собственные ftp-серверы имеют все крупные провайдеры, и спо-соб доступа к ним указывается в контракте. По степени доступности информа-ция на FTP-серверах делится на три категории:

• защищенная информация, доступ к которой разрешен или специальному кругу зарегистрированных пользователей, или за дополнительную плату более широкому кругу пользователей;

• свободно распространяемые файлы (Free share) при условии их некоммер-ческого использования;

• файлы со статусом Shareware, означающим, что пользователь может бесплат-но опробовать их в течение определенного времени, по истечении которого для продолжения эксплуатации он должен зарегистрироваться на сервере и оп-латить стоимость файла. ЭЛЕКТРОННАЯ ПОЧТА (E-mail). В этом случае каждому абоненту на-

значается электронный адрес, представляющий некоторый аналог почтового адреса. С помощью E-mail пользователь может пересылать и получать тексто-вые сообщения и двоичные файлы произвольного вида. Посланная абоненту

Page 121: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

121

информация сохраняется в его «почтовом ящике» на специальном почтовом сервере сайта, к которому подключен абонент. В любое удобное для абонента электронной почты время он может соединиться со своим сайтом (почтовым ящиком), чтобы просмотреть и обработать направленную ему корреспонден-цию (сохранить на своем ПК, распечатать, направить ответ автору, удалить с сервера).

Существуют две группы протоколов, по которым работает электронная почта:

• протоколы SMTP и POP (или РОРЗ). Протокол SMTP (Simple Mail Transfer Protocol) поддерживает передачу сообщений между адресатами Интернета. Он по-зволяет группировать сообщения в адрес одного получателя, размножать копии E-mail-сообщений для передачи в разные адреса. Протокол POP (Post Office Protocol) обеспечивает конечному пользователю доступ к пришедшим к нему электронным сообщениям. При запросе пользователя на получение почты POP-клиенты требуют ввести пароль, что повышает конфиденциальность переписки;

• протокол IMАР. Этот протокол получает все большее распространение. Он дает возможность пользователю работать с письмами непосредственно на сервере провайдера и экономить время работы в Интернете.

Для отправления и получения сообщений по электронной почте использу-ются почтовые программы. Как указывалось ранее, в составе IE для работы с электронной почтой и Новостями предназначена программа Outlook. Эти же функции может выполнять программа Outlook, входящая в MS Office. Из авто-номных программ для работы с почтой большую популярность приобрела про-грамма The Bat!

НОВОСТИ (система телеконференций – UseNet Newsgroups). Эта служба содержит совокупность документов (статей), сгруппированных по определен-ным темам. Пользователь, указав интересующие его темы (группы), может про-сматривать соответствующие документы и создавать свои. Новые документы могут адресоваться или всеми членами группы, или авторам конкретных ста-тей. Так как телеконференции сейчас используются для размещения различных тематических подборок (например, экономического характера), участие в неко-торых конференциях может потребовать дополнительной оплаты.

IRC и ICQ. Эти системы предоставляют возможность обмена информаци-ей в режиме реального времени, т. е. текст, набираемый пользователем, немед-ленно воспроизводится на экране одного или сразу нескольких абонентов. В системе Windows эти функции выполняет приложение MS NetMeeting, по-зволяющее создавать общие рисунки и добавлять текст совместно с другими пользователями на удаленных рабочих станциях. При наличии у обоих абонен-тов звуковых карт и микрофонов с помощью MS NetMeeting можно организо-вывать голосовой обмен между ними в режиме реального времени. Специаль-ные средства телетрансляции дают возможность использовать Интернет для видеоконференций. Для организации интерактивного общения через WWW в настоящее время большое распространение получила система ICQ. Она вводит

Page 122: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

122

собственную адресацию абонентов, организует их удобный вызов и простой способ интерактивного общения.

СРЕДСТВА ПОИСКА, УПРАВЛЕНИЯ И КОНТРОЛЯ В ИНТЕРНЕ-ТЕ. Системы поиска в WWW, предназначенные для поиска информации, орга-низованной одним из перечисленных выше способов (WWW, FTP). Поиск мо-жет вестись по фрагментам текста, как содержащимся в именах файлов, так и являющимся ключевыми словами, отражающими смысловое содержание документа.

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

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

СЛУЖЕБНАЯ ПРОГРАММА PING, предназначенная для проверки ка-чества связи с сервером.

ПРОГРАММЫ WHOIS И FINGER, позволяющие найти координаты пользователей сети или определить пользователей, работающих в настоящий момент на конкретном хосте. Существуют многочисленные системы «поиска людей», а точнее их электронных адресов в Интернете.

Програмное обеспечение работы в Интернете Для работы в Интернете имеются как универсальные программы (про-

граммные комплексы), обеспечивающие доступ к любой службе Интернета, так и специализированные программы, обычно предоставляющие более широкие возможности при работе с конкретным сервисом Интернета. Программы для работы с WWW называются браузерами. Обычно они поставляются в виде комплекса програмных средств, обеспечивающих все возможности работы в Интернете. Наибольшее распространение получили комплексы Netscape Communikator различных версий и Miсrosoft Internet Explorer (IE) версий 5.0 и 6.0, в терминологии Mikrosoft называемые Обозревателем. Одно из важных достоинств IE состоит в том, что одновременно с функциями браузера он вы-полняет и функции Проводника файловой системы локального компьютера. При этом работа с комплексом IE в качестве Проводника организована абсо-лютно по тем же принципам, что и работа в качестве браузера (в том же меню, в том же окне). Таким образом, использование IE стирает различия между ра-ботой с файловой системой локального компьютера и работой с WWW. Кроме того, IE тесно интегрирован с программами MS OFFISE, обеспечивая работу в Интернете непосредственно из этих программ.

Адресация и протоколы в Интернете Компьютер, подключенный к Интернету, называется ХОСТОМ. Для иден-

тификации каждого хоста в сети имеются две системы адресов, всегда дейст-вующие совместно.

Page 123: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

123

IР-адрес. Первая система адресов, называемая IР-адрес. IР-адрес хоста на-значается провайдером и состоит из четырех групп десятичных цифр (четырех байтов), разделенных точками и заканчивающихся точкой. IP-aдpес имеет, на-пример, вид: 123.45.67.91., где числа в каждой группе могут принимать значе-ния от 0 до 255. Аналогично телефонам каждый компьютер в Интернете дол-жен иметь уникальный IР-адрес. Обычно пользователь свой IР-адрес не исполь-зует. Неудобство IP-aдpeca состоит в его безликости, отсутствии смысловой ха-рактеристики хоста, и поэтому он трудно запоминается.

Система доменных имен. Вторая система идентификации компьютеров называется системой доменных имен (Domaiп Naтing System – DNS). DNS-имена назначаются провайдером, они имеют, например, такой вид: win.smtp.dol.ru. Это полное доменное имя; оно состоит из четырех разделенных точками простых доменов (или просто доменов). Число простых доменов в полном доменном имени произвольное. Каждый простой домен характеризует некоторое множество компьютеров. Домены в имени вложены друг в друга: любой домен (кроме последнего) представляет собой подмножество домена, следующего за ним справа. Следовательно, для лучшего понимания смысла до-менного имени его лучше рассматривать справа налево. Так, в приведенном примере DNS-имени домены имеют следующий смысл:

ru – домен страны, в данном случае обозначает все хосты России; dol – домен провайдера, в данном случае обозначает компьютеры локаль-

ной сети российской фирмы Demos; smtp – домен группы серверов Demos, обслуживающих систему электрон-

ной почты; win – имя конкретного компьютера из группы smtp. Таким образом, по своей организации и внутренней структуре DNS-имена

напоминают полный путь к конкретному файлу в дереве каталогов и файлов. Одно из различий состоит в том, что домен более высокого уровня в DNS-имени находится правее. Так же, как и IР-адрес, DNS-имя должно однозначно идентифицировать компьютер в Интернете. Полное доменное имя должно за-канчиваться точкой.

Особое значение имеют имена доменов самого верхнего уровня, стоящие в полном имени справа. Они зафиксированы международной организацией INTERNIC (Internet Network Information Center) и строятся по региональному или организационному признаку. Смысловые значения некоторых доменов верхнего уровня приведены в табл. 12.1.

Таблица 12.1 Домены верхнего уровня

Имя домена Тип организации Имя домена Тип организации COM Коммерческие MIL Военизированные EDU Образовательные NET Опорные сети Интер-

нет и информационные сети

GOV Невоенные правительственные ORG Некоммерческие INT Международные

Page 124: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

124

Домены могут сочетать, региональные и организационные уровни, например:

. chel.su – серверы Челябинской области;

. aс.ru – академические и научные организации в России. Обычно доменные имена имеют три–четыре уровня вложения. Система адресации URL. Система применяется для указания способа ор-

ганизации информации на конкретном хосте и идентификации размещенного на нем информационного ресурса. Так, например, URL (Uniform Resource Locator) может иметь вид: http://home.microsoft.com/intl/ru/www_tour .html. Элементы этого адреса обозначают:

http:// – префuкс, указывающий тип протокола, в данном примере обозна-чающий, что адрес относится к хосту, который является WWW-сервером. В ка-честве префикса (протокола) могут быть также указаны: ftp://, file://, news://;

home.microsoft.com – доменное имя хоста. После доменного имени через двоеточие может следовать число, обозначающее порт, через который будет производиться подключение к хосту;

/intl/ru/ – подкаталог (папка) ru корневого каталога (папки) intl хоста; www_tour.html – имя файла (в соответствии с принятыми в OC Unix пра-

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

некоторых символов, например, таких как тире (-) подчеркивание ( _ ), тильда и др. Прописные и строчные буквы в URL-адресе различаются. Подкаталог (путь к папке) и название файла в URL-адресе могут отсутствовать, а в конце URL могут указываться некоторые параметры. В целом URL, представляет со-бой расширение принятого в локальных ПК понятия полного пути к файлу применительно к множеству компьютеров, входящих в Интернет. Ниже приве-дены характерные примеры URL – адресов реальных WЕВ-страниц:

1) http://members. theglobe.com/ goldinet/index.html; 2) http://yandex.rи:8081/ya_detail.html#P7; 3) http://www.sиrplиsaиction.com/aиction.sa?SI =Ge09; 4) httр://www.stаrs.rи/сgi-biп/dесаds.рl?sеаrсh=%Сl%F3%EA% E8&section=iserv. Запоминать длинный URL-адрес достаточно сложно, поэтому во всех

программных средствах работы в Интернете имеется инструмент Избранное, с помощью которого любому URL можно дать содержательное имя (в том числе на русском языке), называемое ссылкой. Впоследствии для указания адреса вместо URL можно использовать соответствующую ему ссылку. Современные средства работы в Интернете обеспечивают удобные средства создания, хране-ния и применения ссылок.

Адресация в электронной почте. Для идентификации адресата электрон-ной почты применяется система E-mаil-адресов, например, вида [email protected]. В этом адресе vatbul – личное имя адресата; символ @ – при-знак конца имени адресата; dol.ru – доменное имя провайдера, на одном из

Page 125: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

125

компьютеров которого будет храниться «почтовый ящик» пользователя. Весь Е-mаil-адрес не должен содержать пробелов.

Протоколы. Для реализации в глобальной сети описанной системы адре-сации хостов, организации надежной передачи информации, преобразования и представления информации в соответствии со способом ее организации приме-няются различные протоколы. Основной протокол, по которому работает Ин-тернет, это протокол ТСР/IР, совмещающий протоколы передачи (TCP – Transmission Control Protocol) и идентификации хостов (IP-Internet Protocol). На самом деле при доступе к провайдеру с помощью модема по коммутируемой телефонной линии работа в Интернете осуществляется посредством одной из двух модификаций протокола TCP/IP: по протоколу SLIP или РРР; последний протокол более современный.

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

Помимо общесетевых протоколов Интернета для ряда информационных служб существуют свои протоколы.

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

доступ в Интернет по коммутируемым линиям или Dial-Up Главным ограничением в этом режиме является только качество телефон-

ной линии и модема; постоянное соединение с Интернетом по выделенной линии.

Это наиболее совершенный, но и самый дорогой способ работы в Интерне-те, автоматически открывающий доступ ко всем ресурсам Интернета.

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

Контрольные вопросы 1. Что такое Интернет? 2. Что такое узел (сайт) и провайдер? 3. Перечислите информационные ресурсы Интернет. 4. Что такое WWW? 5. Что такое FTP? 6. Что такое E-mail? 7. Что такое IRC и ICQ? 8. Что такое Telnet? 9. Как называются программы для работы с WWW? Приведите пример такой

программы. 10. Какие две системы адресов имеет каждый хост в сети? 11. Что представляет собой IP-адрес? Приведите пример. 12. Что представляет собой доменное имя хоста? Приведите пример.

Page 126: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

126

13. Где в DNS-имени располагается домен более высокого уровня? 14. По каким признакам строятся домены верхнего уровня? Привести примеры. 15. Что представляет собой URL-адрес? 16. Что может указываться в качестве префикса (протокола) в URL-адресе? 17. Что представляют собой E-mаil-адреса? Привести пример. 18. Назовите основной протокол Интернета. 19. Что такое домашняя страница браузера? 20. Какие средства поиска в WWW вы знаете? Привести примеры поисковых

систем. 21. Назовите протоколы работы с электронной почтой.

Page 127: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

127

Тема 13. Вирусы и антивирусное программное обеспечение

Свойства компьютерных вирусов Сейчас применяются персональные компьютеры, в которых пользователь

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

Что такое компьютерный вирус? Формальное определение этого понятия до сих пор не придумано, и есть серьезные сомнения, что оно вообще может быть дано. Многочисленные попытки дать «современное» определение вируса не привели к успеху. Чтобы почувствовать всю сложность проблемы, попро-буйте к примеру дать определение понятия «редактор». Вы либо придумаете нечто очень общее, либо начнете перечислять все известные типы редакторов. И то, и другое вряд ли можно считать приемлемым. Поэтому мы ограничимся рассмотрением некоторых свойств компьютерных вирусов, которые позволяют говорить о них как о некотором определенном классе программ.

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

Вирус – программа, обладающая способностью к самовоспроизведению. Такая способность является единственным средством, присущим всем типам вирусов. Но не только вирусы способны к самовоспроизведению. Любая опера-ционная система и еще множество программ способны создавать собственные копии. Копии же вируса не только не обязаны полностью совпадать с оригина-лом, но и могут вообще с ним не совпадать!

Основные пути проникновения вирусов – съемные диски и компьютерные сети.

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

Классификация вирусов В настоящее время известно более 5000 программных вирусов, их можно

классифицировать по следующим признакам (табл. 13.1 ): среде обитания; способу заражения среды обитания;

Page 128: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

128

степени воздействию; особенностям алгоритма.

Таблица 13.1. Классификация вирусов

ПРИЗНАКИ Среда

обитания Способ

заражения Степень

воздействия Особенность алгоритма

ВИДЫ

Сетевые Резидентные Неопасные Простейшие Файловые Нерезидентные Опасные Вирусы-

репликаторы Загрузочные Очень опасные Вирусы-

невидимки Файлово-

загрузочные Вирусы-мутанты

В зависимости от среды обитания вирусы можно разделить на сетевые,

файловые, загрузочные и файлово-загрузочные. Сетевые вирусы распростра-няются по различным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы, имеющие расширения COM и EXE. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержа-щий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.

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

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

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

опасные вирусы, которые могут привести к различным нарушениям в работе компьютера;

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

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

Page 129: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

129

жены и уничтожены. Можно отметить вирусы-репликаторы, называемые чер-вями, которые распространяются по компьютерным сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои копии. Известны ви-русы-невидимки, называемые стелс-вирусами, которые очень трудно обнару-жить и обезвредить, так как они перехватывают обращения операционной сис-темы к пораженным файлам и секторам дисков и подставляют вместо своего тела незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты, содержащие алгоритмы шифровки-расшифровки, благодаря кото-рым копии одного и того же вируса не имеют ни одной повторяющейся цепоч-ки байтов. Имеются и так называемые квазивирусные или «троянские» про-граммы, которые хотя и не способны к самораспространению, но очень опас-ны, так как, маскируясь под полезную программу, разрушают загрузочный сек-тор и файловую систему дисков. «Макровирусы» используют возможности макроязыков в системах обработки данных (текстовые редакторы, электронные таблицы и т. д.). В настоящее время наиболее распространены макровирусы за-ражающие документы редакторов Microsoft Word, Excel, Access.

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

тано несколько видов специальных программ, которые позволяют обнаружи-вать и уничтожать вирусы. Такие программы называются антивирусными. Различают следующие виды антивирусных программ:

программы-детекторы; программы-доктора или фаги; программы-ревизоры; программы-фильтры; программы-вакцины или иммунизаторы. Программы-детекторы осуществляют поиск характерной для конкретно-

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

Программы-доктора или фаги, а также программы-вакцины не только на-ходят зараженные вирусами файлы, но и «лечат» их, т. е. удаляют из файла тело программы-вируса, возвращая файлы в исходное состояние. В начале своей ра-боты фаги ищут вирусы в оперативной памяти, уничтожая их, и только затем переходят к «лечению» файлов. Среди фагов выделяют полифаги, т. е. про-граммы-доктора, предназначенные для поиска и уничтожения большого коли-чества вирусов. Наиболее известные из них: Aidstest, Scan, Norton AntiVirus, Doctor Web, Nod32.

Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление версий.

Page 130: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

130

Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и сис-темных областей диска тогда, когда компьютер не заражен вирусом, а затем пе-риодически или по желанию пользователя сравнивают текущее состояние с ис-ходным. Обнаруженные изменения выводятся на экран монитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы. При сравнении проверяются длина файла, код циклического контроля (кон-трольная сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже очистить изменения версии проверяемой програм-мы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа Adinf.

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

попытки коррекции файлов с расширениями COM, EXE; изменение атрибутов файла; прямая запись на диск по абсолютному адресу; запись в загрузочные сектора диска; загрузка резидентной программы. При попытке какой-либо программы произвести указанные действия «сто-

рож» посылает пользователю сообщение и предлагает запретить или разрешить соответствующее действие. Программы-фильтры весьма полезны, так как спо-собны обнаружить вирус на самой ранней стадии его существования до раз-множения. Однако, они не «лечат» файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. К недостаткам про-грамм-сторожей можно отнести их «назойливость» (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возможные конфликты с другим программным обеспечением. Примером программы-фильтра является программа Vsafe, входящая в состав пакета ути-лит MS DOS.

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

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

Page 131: Курс лекций по информатикеvenec.ulstu.ru › lib › disk › 2012 › Kadyrova2.pdf · 2012-04-16 · ных вирусов, также рассмотрены

131

Контрольные вопросы 1. Способы проникновения вирусов на компьютер. 2. Перечислите признаки, по которым классифицируются вирусы. 3. Перечислите вирусы по среде обитания. Дать краткую характеристику. 4. Перечислите вирусы по способу заражения. Дать краткую характеристику. 5. Перечислите вирусы по степени воздействия. Дать краткую

характеристику. 6. Перечислите вирусы по особенностям алгоритма. 7. Дайте краткую характеристику репликаторных вирусов. 8. Дайте краткую характеристику вируса «троянский конь». 9. Дайте краткую характеристику вируса «логическая бомба». 10. Дайте краткую характеристику вирусов-мутантов. 11. Дайте краткую характеристику вируса-невидимки. 12. Перечислите виды антивирусных программ. 13. Назовите основные действия антивирусных программ- детекторов и про-

грамм-докторов. 14. Назовите основные действия антивирусных программ-ревизоров. 15. Что представляют собой антивирусные программы-фильтры и программы-

вакцины (иммунизаторы). Библиографический список 1. Кадырова, Г. Р. Информатика: учебно-методический комплекс / Г. Р. Ка-

дырова; Ульян. гос. техн. ун-т. – Ульяновск: УлГТУ,2005. 2. Кадырова, Г. Р. Компьютерный практикум. Часть 1: учебное пособие /

Г. Р. Кадырова. – Ульяновск: УлГТУ, 2006. 3. Кадырова, Г. Р. Компьютерный практикум. Часть 2: учебное пособие /

Г. Р. Кадырова. – Ульяновск: УлГТУ, 2006. 4. Кадырова, Г. Р. Курс лекций по информатике. Часть 1: учебное пособие /

Г. Р. Кадырова. – Ульяновск: УлГТУ, 2008. 5. Информатика : учеб. пособие для студ. / Сост.: А. В. Могилев, Н. И. Пак,

Е. К. Хеннер. – М. : Издательский центр «Академия», 2003. 6. Информатика : учебник / под ред. Н. В. Макаровой. – Изд. 3-е – М. : Фи-

нансы и статистика, 2003.


Recommended