Справочник от Автор24
Поделись лекцией за скидку на Автор24

Основы современной информатики

  • ⌛ 2011 год
  • 👀 380 просмотров
  • 📌 342 загрузки
Выбери формат для чтения
Статья: Основы современной информатики
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Основы современной информатики» pdf
| I 4 '': I I ! i l l :iiii li'i: 1' :г 11'Г|| l li Гм: i: iPi : Ti l l ii: ii i: T i;ii:i|i|i|i; Ю .И . КУДИНОВ, Ф. Ф. ПА Щ ЕН КО ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Издание второе, исправленное Рекомендовано Учебнометодическим объединением вузов Российской Федерации по образованию в области прикладной информатики в качестве учебного пособия для ст удент ов вы сш их учебных заведений обучающихся по специальности «Прикладная информатика» , САНКТ-ПЕТЕРБУРГ* М ОСКВА* КРАСНОДАР 2011 IIIIIIIIIIIIIIIIIIIIIIIII1IIIIIIIIIIIIIIIIIIIIIIIIII ББК 32.97, 32.81я73 К 88 Кудинов Ю. И., Пащенко Ф. Ф. К 88 Основы современной информатики: Учебное посо­ бие. 2-е изд., испр. — СПб.: Издательство «Л ань», 2011. — 256 с.: ил. — (Учебники для вузов. Специаль­ ная литература). ISBN 978-5-8114-0918-1 В учебном пособии представлены все разделы информатики, определяющие современный уровень подготовки специалистов в системе высшего образования. По своему содержанию книга пол­ ностью соответствует требованиям государственных стандартов. Пособие предназначено для студентов всех специальностей и направлений подготовки, исключая тех, кто специализируется в области информатики. ББК 32.97, 32.81я73 Обложка А. Ю. Л АПШ ИН © Издательство «Лань>, 2011 © Ю. И. Кудинов, Ф. Ф. Пащенко, 2011 © Издательство «Лань», художественное оформление, 2011 ПРЕДИСЛОВИЕ Учебное пособие охватывает все основные разделы курса информатики и информационных технологий, прочитан­ ного авторами студентам Л ипецкого государственного технического университета и М осковского физико-технического института. Оно состои т из десяти глав. Материал первой и четвертой глав закладывает теоретическую базу информатики. В первой главе рассматриваются вопросы анализа и обработки информации, представления числовых, логиче­ ски х, текстовых и графических данных, а также опера­ ций с ними. Дается краткий обзор основных структур дан­ ных: списков, массивов и деревьев. Вторая и третья главы содержат сведения о современ­ ных технических и программных средствах реализации информационных процессов. Четвертая глава освещает две важные темы: моделиро­ вание и интеллектуальные системы. В ней продолжаются и развиваются идеи, касающиеся объекта, системы, моделей, моделирования и затронутые в школьных учебниках по ин­ форматике. В пособии нашли достаточно полное отражение такие методы представления знаний и решения интеллек­ туальных задач, как логическая и продукционная модели знаний, семантические сети, нечеткие множества, эксперт­ ные системы, нейронные сети и генетические алгоритмы. В главах с пятой по восьмую излагаются принципы про­ граммирования на BASIC и приводятся основные характе­ ристики табличного процессора Excel и системы управления 4 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ базами данных A ccess, необходимые для последующ его практического освоения указанных программны х про­ дуктов. Девятая и десятая главы — это краткая справочная информация о компьютерных сетях и методах защиты ин­ формации. В заключение представлен список использованной ли­ тературы. Содержание учебного пособия формировалось под влия­ нием двух факторов: • требование строгого соответствия Государственному стандарту по этой дисциплине; • необходимость оперативной и качественной подготов­ ки к тестовым проверкам, проводимым М инистерст­ вом образования и науки РФ. Содержание учебного пособия полностью соответству­ ет всем положениям государственных образовательных стандартов по информатике. Четырехлетний опыт тестирования по информатике, проводимого в ЛГТУ, показал необходим ость создания компактного пособия, насыщенного большим числом оп­ ределений важнейших понятий и примеров решения за­ дач, что и было сделано авторами. Учебное пособие рассчитано на студентов младших кур­ сов высш их учебных заведений, бакалавров и магистров, кроме тех, кто специализируется в области информатики. Ir i i i i Ii 1! il I ' l i i l liii 'IN I, iIm l i i I I i: i l i l M ' l i li ilM i liiii li\illi ill l i i l i 11Ш11 ГЛАВА ПЕРВАЯ ПОНЯТИЕ ИНФОРМАЦИИ. ОБЩАЯ ХАРАКТЕРИСТИКА ПРОЦЕССОВ СБОРА, ПЕРЕДАЧИ, ОБРАБОТКИ И НАКОПЛЕНИЯ ИНФОРМАЦИИ §1.1. ОСНОВНЫ Е ЗАДАЧИ ИНФОРМАТИКИ Термин информатика происходит от французского слова inform atique (объединение слов inform ation — «информа­ ция» и au tom atiqu e— «автом атика»). В англоязычных странах этому термину соответствует синоним Computer Science (компьютерная наука). Информатика — это наука, изучающая все аспекты получения, хранения, преобразования, передачи и исполь­ зования информации. Рассмотрим основные понятия ин­ форматики. Информационные ресурсы (ИР) — информация и носи­ тели с информацией в информационных системах и сетях. Информационная система (ИС) — система, предназна­ ченная для хранения, поиска, обработки и получения ин­ формации по запросам пользователей. Информационная технология (ИТ) — процесс, вклю­ чающий совокупность методов сбора, хранения, обработ­ ки и передачи информации на основе применения средств вычислительной техники. Бурное развитие информатики связано с появлением электронных вычислительных машин, или компьютеров. Именно поэтому информатика — это наука о приемах соз­ дания, хранения, воспроизведения, обработки и передачи данных средствами вычислительной техники, а также нау­ ка о принципах функционирования этих средств и мето­ дах управления ими. Основная цель информатики заключается в разработ­ ке методов и средств переработки информации. 6 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ К задачам информатики относятся: • исследование информационных процессов любой при­ роды; • разработка технических средств и методов переработ­ ки информации на основе данного исследования; • решение научных и технических проблем создания ин­ формационных систем в различных сферах экономи­ ки, производства и общественной жизни. § 1.2. ИНФОРМАЦИЯ, КАЧЕСТВО И КОЛИЧЕСТВО ИНФОРМАЦИИ. ИНФОРМАЦИОННЫ Е ПРОЦЕССЫ Термин информация используется во многих сферах человеческой деятельности. Он происходит от латинского слова inform atio, что означает «сведения, разъяснения, изложение». В ш ироком смысле информация — это сведения и зна­ ния, являющ иеся объектом хранения, преобразования, передачи и помогающ ие решить поставленную задачу. Приведем некоторые основные понятия информации. Информация, предназначенная передаче, называется сообщением. Сообщение может быть представлено в виде знаков и символов, преобразовано и закодировано в опре­ деленную последовательность электрических сигналов. Информация, представленная в виде, пригодном для обработки людьми или компьютером, называется данны­ ми. Чаще всего имеют делос тремя типами данных: число­ выми, текстовыми и графическими. Для того чтобы происходил обмен информацией, ее пре­ образование и передача, должны быть источник информа­ ции, передатчик, канал связи, приемник и получатель ин­ формации, образующие информационную систему (рис. 1.1). Обычно в качестве получателя выступает человек, к о­ торый оценивает информацию с точки зрения ее примени- Источник информации Передатчик — Канал связи Рис. 1.1 Приемник — Получатель информации v J Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 7 мости для решения поставленной задачи. Процедура оцен­ ки информации человеком проходит в три этапа, опреде­ ляющие ее синтаксический, семантический и прагмати­ ческий аспекты. Вначале человек наблюдает некоторый факт действи­ тельности в виде определенного набора данных вне зави­ симости от их смысловых и потребительских качеств. Здесь проявляется синтаксический аспект. Затем человек путем сопоставления полученных дан­ ных с тезаурусом — полным систематизированным набо­ ром данных и знаний в какой-либо области — формирует знание о наблюдаемом факте. Это семантический аспект информации. На основании полученных знаний человек оценивает практическую полезность информации для достижения поставленных целей, что и отражает ее прагматический аспект. Эффективность функционирования любых систем во многом определяется качеством используемой информации. Качество информации определяется некоторыми ее свойствами, отвечающими потребностям (целям, задачам) пользователей. Рассмотрим такие важные характеристики качества информации, как полноту, достоверность, доступность, актуальность. Полнота информации характеризует степень доста­ точности данных для принятия решения или создания новых данных на основе имеющихся. Неполный набор дан­ ных оставляет большую долю неопределенности, т. е. боль­ шое число вариантов выбора, а это потребует применения дополнительных методов, например экспертных оценок, бросания жребия и т. п. Избыточный набор данных затруд­ няет доступ к нужным данным, создает повышенный ин­ формационный шум, что также вызывает необходимость применения дополнительных методов, например фильтра­ ции, сортировки. Достоверность информации — это свойство, характе­ ризующее степень соответствия информации реальному объ­ екту с необходимой точностью. При работе с неполным 8 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ набором данных достоверность информации мож ет харак­ теризоваться вероятностью: например, можно сказать, что при бросании монеты с вероятностью 50% выпадет герб. Дост упност ь информации — это возмож ность получе­ ния информации при необходимости. Доступность скла­ дывается из двух составляющ их: из доступности данных и доступности методов. Отсутствие хотя бы одного дает не­ адекватную информацию. Акт уальност ь информации характеризует ее способ­ ность сохранять ценность для потребителя в течение вре­ мени, т. е. не устаревать. Информация сущ ествует во вре­ мени, так как сущ ествую т во времени все информацион­ ные процессы. Информация, актуальная сегодня, может стать совершенно ненужной по истечении некоторого вре­ мени. Свойство полноты информации предполагает, что име­ ется возможность измерять количество информации. Для оценки и измерения количества информации в сообщении применяются различные подходы, среди которы х следует выделить статистический, алфавитный и объемный. Статистический подход получил развитие в работах Р. Хартли, К. Ш еннона, А . Н. Колмогорова и др. В 1928 г. американский инженер Р. Хартли предложил оценивать количество информации Н в сообщении логарифмом чис­ ла N возмож ных равновероятных состояний: H = \og2N. (1.1) Стандартной минимальной единицей количества инфор­ мации Н = 1 будет выбор из двух возможностей N = 2 (д анет, 0 -1 , истина-лож ь и т. д.). Такая единица носит назва­ ние бита. Сообщение с неопределенностью в 4 возможных состояния имеет 2 бита информации (log24 = 2), в 8 возмож­ ных состояний — 3 бита информации (log28 = 3) и т. д. П р и м е р 1.1. Чтобы в колоде из 32 карт выбрать оп­ ределенную карту (например, червонную даму), достаточ­ но получить ответы «да» или «нет» на 5 вопросов, которы ­ ми могут быть: 1. Карта черной масти? — Ответ: «н ет». 2. Бубны? — Ответ: «н ет». 9 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 3. Одна из четырех старш их? — Ответ: «да». 4. Одна из двух старш их? — Ответ: «н е т ». 5. Дама? — Ответ: «да». Этот выбор мож но описать последовательностью из пяти двоичных символов 00101, в которой 0 соответствует «н ет», а 1 соответствует «да». До сих пор предполагалось, что выборы равновероятны и число их конечно. К. Шеннону принадлежит определение количества ин­ формации, которое зависит не только от N , но и от веро­ ятности выбора Р, состояния индивидуальной i-й инфор­ мации: H t = log 2( l / P ;). (1.2) П р и м е р 1 .2 .В корзине лежат 32 шара, среди них 4 бе­ лых, а остальные черные. Сколько битов информации Н содержится в сообщ ении о том, что из корзины вытащили белый шар? Найдем вероятность выбора белого шара: р —_i_ —А 6 32 8 ’ а затем искомое количество информации Н ъ по формуле Шеннона (1.2): Щ = log 2(8) = 3. Удобнее в качестве меры количества информации поль­ зоваться средним значением количества индивидуальной информации. Эта мера была предложена К. Шенноном и называется информационной энтропией: я = | ; я я , = | ; з 1 о г 2 (1 /.ч ). 1=1 (1.з) 1=1 Энтропия Н характеризует информационную неопре­ деленность каждой ситуации. При равенстве всех вероят­ ностей формула Шеннона (1.3) превращается в формулу Хартли (1.1). Алфавитный подход позволяет определить количест­ во текстовой информации. Количество информации, ко­ торое несет каж дый символ, вычисляется по формуле 10 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ i = log.,N, (1.4) где N — мощ ность алфавита, равная количеству символов в нем. Текст, содержащий К символов, имеет объем инфор­ мации, равный I = К ■i. (1.5) Максимальное количество L слов из т букв, которое можно составить с помощ ью алфавита мощ ностью N , оп­ ределяется как L = Nm. (1.6) П р и м е р 1 . 3 . В алфавите некоторого языка всего 2 бу­ квы, каждое слово этого языка состоит из т букв. Извест­ но, что можно составить 2048 различных слов. Сколько букв в каждом слове? Используя формулу (1.6) с N = 2, получим: 2048 = 2т, откуда т = 11. Объемный подход предполагает количественную оцен­ ку информации в определенны х единицах. За м ини­ мальную единицу информации принимается один бит (англ. bit — binary digit — двоичная цифра). Бит — слиш ­ ком мелкая единица измерения информации. На практи­ ке чаще применяются более крупные единицы, например байт, являющийся последовательностью из восьми битов. Ш ироко используются еще более крупные производные единицы информации: • 1 килобайт (Кбайт) = 1024 байт = 210 байт; • 1 мегабайт (Мбайт) = 1024 Кбайт = 220 байт; • 1 гигабайт (Гбайт) = 1024 Мбайт = 230 байт; • 1 терабайт (Тбайт) = 1024 Гбайт = 240 байт. Получение и использование информации тесно связа­ но с информационными процессами, поэтому имеет смысл рассмотреть отдельно их виды. Сбор данны х — это деятельность субъекта по накопле­ нию данных с целью обеспечения достаточной полноты. Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 11 Соединяясь с адекватными методами, данные рождают информацию, способную помочь в принятии решения. Например, интересуясь ценой товара, его потребительски­ ми свойствами, мы собираем информацию для того, чтобы принять решение: покупать или не покупать его. П ередача да н н ы х — это процесс обмена данными. Предполагается, что сущ ествует источник информации, канал связи, приемник информации и меж ду ними при­ няты соглаш ения о порядке обмена данными, эти согла­ шения называются протоколами обмена. Скорость пере­ дачи информации измеряется в бодах (1 бод = 1 б и т/с). Хранение данны х — это поддержание данных в фор­ ме, постоянно готовой к выдаче их потребителю. Одни и те же данные могут быть востребованы неоднократно, поэто­ му разрабатывается способ их хранения (обычно на мате­ риальных носителях) и методы доступа к ним по запросу потребителя. Обработка данны х — это процесс преобразования ин­ формации от исходной ее формы до определенного резуль­ тата. Сбор, накопление, хранение информации часто не являются конечной целью информационного процесса. Чаще всего первичные данные привлекаются для решения какой-либо проблемы, затем они преобразуются шаг за шагом в соответствии с алгоритмом решения задачи до по­ лучения необходимых выходных данных. § 1.3. ОБЩ ЕЕ ПРЕДСТАВЛЕНИЕ ДАННЫХ И ПОНЯТИЕ О СИСТЕМАХ СЧИСЛЕНИЯ Любая ЭВМ предназначена для обработки, преобразо­ вания и хранения данных. Для выполнения этих функций ЭВМ должна обладать некоторым способом представления этих данных. Представление данных заключается в их пре­ образовании в вид, удобный для последующей обработки либо пользователем, либо ЭВМ. Форма представления дан­ ных определяется их конечным предназначением. В зави­ симости от этого данные имеют внутреннее и внешнее пред­ ставление (см. рис. 1.2). Внут реннее представление данных определяется фи­ зическими принципами, по которым происходит обмен 12 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Рис. 1.2 сигналами между аппаратными средствами компьютера, принципами организации памяти, логикой работы ЭВМ. Любые данные для обработки ЭВМ представляются последо­ вательностями двух целых чисел — единицы и нуля. Такая форма представления данных получила название двоичной. Во внешнем представлении (для пользователя) все дан­ ные хранятся в виде файлов. Файл — область памяти на внешнем носителе, которой присвоено имя. Простейшими способами внешнего представления дан­ ных являются: • вещественные и целые числа (числовые данные); • последовательность символов (текст); • изображение (графика, фотографии, рисунки, схемы). Важным понятием при представлении данных в ком­ пьютерах является понятие системы счисления. Система счисления — это способ наименования и пред­ ставления чисел с помощ ью символов, имеющ их опреде­ ленные количественные значения. В зависимости от спо­ соба представления чисел системы счисления делятся на непозиционные и позиционные. В непозиционных системах цифры не меняют своего к о­ личественного значения при изменении их расположения в числе. В римской непозиционной системе в качестве цифр используются: 1(1), V (5), Х (1 0 ), L (5 0 ), С (100), D (500), М (1000). Величина числа в римской системе счисления оп­ ределяется так: если меньшая цифра стоит слева от боль­ шей, то она вычитается, если справа — прибавляется. На­ пример, десятичное число 1998 в римской системе исчисле­ ния будет выглядеть следующим образом: MCMXCVIII = 1000 + (1000 - 100) + + (100 - 1 0 ) + 5 + 1 + 14- 1 = 1998. 13 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ В позиционных системах количественное значение ка­ ждой цифры зависит от места (позиции) в числе. Приме­ ром позиционной системы является арабская десятичная система, а также двоичная и шестнадцатеричная системы, применяемые в ЭВМ. Шестнадцатеричная система счис­ ления оказалась востребованной программистами из-за более компактного представления чисел по сравнению с двоичной системой. Иногда для представления данных используется восьмеричная система счисления. § 1.4. ПРЕДСТАВЛЕНИЕ ЧИСЛОВЫ Х ДАННЫХ Количество используем ы х символов определяет на­ звание системы счисления (см. табл. 1.1): двоичная — два (О и 1); восьмеричная — восемь (0, 1, 2, 3, 4, 5, 6, 7); деся­ тичная — десять (0 -9 ); шестнадцатеричная — шестнадцать (0 -9 , A -F ). В общем случае любое число X в позиционной системе исчисления с основанием Q может быть представлено в раз­ вернутой форме X —anQ" + an_iQn 1 + ... + aoQ° + V целая часть + a_iQ 1+а_ 2Q 2 +*.* + ci_mQ т9 V дробная часть где коэффициенты а — целые числа в интервале [0, Q - 1], i = п, п - 1, ..., 1, 0, - 1 , -т . Числа принято представлять в виде последовательно­ сти коэффициентов, называемой свернутой формой: ( & л CLл _|...CL j & Q, Я —j CL—2 . . . ^ - т ) я с указанием основания Q системы счисления. П р и м е р 1.4. Запишем числа в развернутой (а) и свер­ нутой (б) формах: • в двоичной системе (Q = 2): а) Х 2 = 1 х 22 + 0 х 21 + 1 х 2° + 0 х 2 1 + 1 х 2~2, б) Х 2= 101,012; 14 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Таблица 1.1 Система счисления Десятичная Двоичная Восьмеричная Шестнадцатеричная 0000 1 0001 1 1 2 0010 2 2 3 ООН 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 А 11 1011 13 В 12 1100 14 С 13 1101 15 D 14 1110 16 Е 15 1111 17 F • в десятичной системе (Q = 10): а) Х 10 = 3 х Ю 2 + 0 х Ю 1 + 6 х 10° + 2 х 10 1 + 5 х 10 2, б ) Х 10 = 306,2510; • в восьмеричной системе (Q = 8): а ) Х 8 = 2 х 8 2 + 3 х 8 1 + 1 х 8° + 4 х 8 1 + 6 х 8 ~2, б) Х 8 = 231,468; • в шестнадцатеричной системе (Q = 16): а) Х 1в = 7 х 162 + В х 161 + D х 16° + 3 х 16"1 + А х 16 2, б ) X 16 = 7BD ,3A16. Если выразить шестнадцатеричные цифры через их десятичные значения (В = 11, D = 13, А = 10), то разверну­ тая форма числа примет вид Х 1в = 7 х 162 + 11 х 161 + 13 х 16° + 3 х 1 6 -1 + 10 х 1 6 '2. 15 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 1.4.1. ПЕРЕВОД ЧИСЕЛ В ПОЗИЦИОННЫХ СИСТЕМАХ СЧИСЛЕНИЯ Перевод чисел в десятичную сист ему. Преобразование чисел, представленных в двоичной, восьмеричной и ш ест­ надцатеричной системах счисления, выполняется так: чис­ ло записывается в развернутой форме и вычисляется его значение. П р и м е р 1.5. Перевести числа в десятичную систему. Из двоичной системы число 10,112: 10Д 12 = 1 х 2 1 + 0 х 2° + 1 х 2 1 + 1 х 2 2 = 2 ,7 5 10. Из восьмеричной системы число 6 7 ,58: 6 7 ,58 = 6 х 81 + 7 х 8° + 5 х 8 -1 = 55,62 510. Из шестнадцатеричной системы число 19F16: 19F16 = 1 х 162 + 9 х 162 + F х 16° = = 1 х 256 + 9 х 16 + 15 х 1 = 4 1 5 10. П еревод чисел в сист ем ах счисления с разными осно­ ваниями. Перевод числа X из системы счисления с осно­ ванием Q в систему счисления с основанием К выполня­ ется путем нахож дения остатков от деления числа X на основание К . Процесс деления продолжается до тех пор, пока част­ ное от деления не будет меньше основания К . Полученные остатки записываются в обратном порядке. П р и м е р 1.6. Перевести число 2710 в двоичную систе­ му. Для обозначения остатков будем использовать цифры числа в свернутой форме a^a^a^Q . _ 27 |2 -Щч - Т П - 2 °о 1 19 612 — 1 V r t u _ 1 а2 О 2 о а 1 «* -1 , Ответ: 2710 = (а4а3а2а1а0)2 = 110112. 16 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ П р и м е р 1 . 7 . Перевести десятичное число 31810в вось­ меричную и шестнадцатеричную системы. 318 8 24 39 8 78 32 72 а, =7 318 116 16 _ 19“ Ш2_ 158 1 144 а ,- 3 «о=14 1875 х2 3750 х2 а 1= 1 5000 х8 1875 х 16 1250 875 а 2 = 0 7500 х2 а_3= 1 5000 х2 а_г- 4 0000 (а , о- 2)й а_j - 3 0000 (а 1)|« £ О Ответ: 31810 = (а2а 1а0)8 = 4768; 318ю = {а2аха0)1б = 13Е16. П еревод десят ичных дробей в другие системы счисле­ ния. Последовательность действий при переводе десятич­ ной дроби следующая. 1. Последовательно умножать десятичную дробь и по­ лучаемые дробные части произведений на основание но­ вой системы счисления до тех пор, пока дробная часть про­ изведения не станет равной нулю или не будет достигнута требуемая точность вычисления. 2. Записать полученные целые части произведения в прямом порядке. П р и м е р 1.8. Перевести десятичную дробь 0,1875 в двоичную, восьмеричную и шестнадцатеричную системы. 1875 х8 а_4- 1 0000 (а_1а_2«_3а_,1)2 Здесь вертикальная черта отделяет целые части чисел от дробных частей. Ответ: 0,187 510 = 0,00112 = 0,1 48 = 0 ,3 1б. П еревод см еш анных чисел, содерж ащ их целую и дроб­ ную части, осущ ествляется в два этапа. Вначале перево­ дятся раздельно целая и дробная часть числа, а затем при 17 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ записи числа в новой системе счисления целая часть запя­ той (точкой) отделяется от дробной. П р и м е р 1.9. Перевести десятичное число 318,1 875в восьмеричную и шестнадцатеричную системы счисления. Ответ: 318,187510 = 4 7 6 ,148 = 13Е,31б. Перевод чисел из двоичной системы, в системы с осно­ ванием 2" (Q = 2") может производиться по более простым алгоритмам. Начнем с алгоритма перевода целого десятич­ ного числа. 1. Двоичное число разбить справа налево на группы по п цифр в каждой. Если в последней левой группе окаж ет­ ся менее п цифр, то ее необходимо дополнить слева нуля­ ми до нужных п цифр. 2. Для каждой группы, состоящей из п двоичных цифр, записать соответствующее число в системе счисления Q = 2п. П р и м е р 1.10. Двоичное число 101111111000000112 перевести в восьмеричную систему счисления: 101111111000000112 = = =27 7 4 0 3 8 * "if 7 7 Т Т 3 и шестнадцатеричную систему счисления: 101111111000000112 = =ощот miооооот =i7F °31 6 . В первом случае группа содержит п = 3 цифр и называ­ ется триадой, а во втором — п = 4 цифр и называется тет­ радой. Для того чтобы дробное двоичное число записать в сис­ теме счисления с основанием Q = 2 n, нужно выполнить следующие действия. 1. Двоичное число разбить слева направо на группы по п цифр в каждой. Если в последней правой группе окажет­ ся меньше п цифр, то ее надо дополнить справа нулями до п цифр. 2. Для каждой группы, состоящей из п двоичных цифр, записать соответствующее число в системе счисления Q = 2п. 18 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ П р и м е р 1.11. Перевести двоичное дробное число 0,101010012 в восьмеричную систему счисления: 0,101010012 = 0 , ^ 0 1 0 0 1 0 = 0,5228, 5 2 Т " и шестнадцатеричную систему счисления: 0,101010012 = 0 ,1 0 1 0 Щ )1 = 0 ,А 9 16. Перевод смешанных двоичных чисел осуществляется по аналогии с примером 1.9. 1.4.2. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ В ПОЗИЦИОННЫХ СИСТЕМАХ СЧИСЛЕНИЯ В основе арифметических операций сложения, вычита­ ния, умножения и деления, выполняемых в двоичной сис­ теме счисления, лежат таблицы сложения и умножения: Сложение Умножение + 1 X 0 1 1 1 1 10 1 1 Сложение. В таблице сложения важно отметить, что при сложении двух единиц величина разряда становится равной (в других системах может быть и большей) основа­ нию, происходит переполнение разряда и производится перенос в старший разряд (1 + 1 = 102). П р и м е р 1 . 1 2 . Используя таблицу сложения, сложить два двоичных числа 1012, 112, или десятичные 5, 3, и про­ верить правильность вычисления. Ю12 10002 Правильность сложения двоичных чисел проверяется сложением соответствующ их десятичных чисел: 510 + 310 = = 810 = 10002. Вычит ание. Операция вычитания одного числа — вы­ читаемого (например, 3) из большего другого — уменьшав- 19 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ мого (например, 5) путем сложения выполняется так: от­ рицательное число (вычитаемое) преобразуется в число, которое дополняет его до полного разряда (для 3 это будет 7 = 1 0 - 3), затем происходит суммирование (5 + 7 = 12), после чего у результата отбрасывается высший разряд (по­ лучается 2). П р и м е р 1.13. Из двоичного числа 1012 (десятично­ го 5) вычесть двоичное число 112(десятичное 3). Дополним вычитаемое 112 до полного разряда: представим число 112 в виде четырехразрядного числа 0 0 1 12, для которого опре­ делим обратный код 11002(заменой 0 на 1 и 1 на 0) и допол­ нительный код 11012 = 11002 + 1 (добавлением 1 к млад­ шему разряду). Производим сложение двоичных (десятич­ ных) чисел: 01012 5 +11012 +7 100102 12 Удаление высшего разряда 1 из двоичного числа 100102 дает 102, а из десятичного 12 — дает 2. Ответ: 102, 2. П р и м е р 1.14. Умножить двоичные числа 1102 и 112. 1Ю 2 Х 11, 110 +110 100102 Ответ: 100102. Операция деления двоичных чисел подобна операции деления десятичных чисел. П р и м е р 1.15. Разделить число 1102 на 112. 110а|11а и2Г1ог о Ответ: 102. 20 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Аналогичным способом арифметические операции вы ­ полняются в восьмеричной и шестнадцатеричной системах счисления. 1.4.3. ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В КОМПЬЮТЕРЕ Числовая информация в памяти компьютера хранится и обрабатывается в двоичном коде. В компьютерах применяются две формы представления двоичных чисел: с фиксированной и плавающей запятой. В форме с фиксированной запятой хранятся целые числа. На рис. 1.3 приводится ячейка памяти, содержа­ щая 8 разрядов, или 1 байт, в которой записано целое по­ ложительное двоичное число 101110112. 1 1 1 1 1 1 Рис. 1.3 Максимальное число соответствует восьми единицам и равно 1 х 27 + 1 х 26 + 1 х 25 + 1 х 24 + 1 х 23 + + 1 х 2 2 + 1 х 2 г + 1 х 20 = 28 - 1 = 25510. Следовательно, в однобайтовой ячейке памяти можно записать целое число, изменяющееся в пределах от 0 до 255. Если в ячейке памяти п разрядов, то в ней можно со ­ хранить целое число Х = 2п - \ . (1.7) Для представления целого числа в компьютере ячейка памяти, называемая машинным словом, содержит 16 раз­ рядов (битов). Причем старший левый разряд отводится для знака (0 соответствует плюсу, а 1 — минусу). Тогда компьютер может оперировать следующим максимальным целым числом: 215 — 1 = 32 767. В формате с плавающей запятой хранятся и обраба­ тываются в компьютере вещественные числа. Формат с плавающей запятой предполагает запись вещественного числа в экспоненциональном виде: Х = ± М х Qp, Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 21 где М — мантисса числа (\М\ < 1); Q — основание системы счисления; Р — порядок числа (Р — целое число). П р и м е р 1.16. Преобразовать десятичное число 324,52 в экспоненциальную форму. 324,52 = 0,32452 х 103 = 0,32452Е +3. Здесь мантисса М = 0,32452, порядок Р = 3. Число в формате с плавающей запятой занимает в па­ мяти компьютера 4 (число обычной точности) или 8 байт (число двойной точности). § 1.5. ПРЕДСТАВЛЕНИЕ ЛОГИЧЕСКИХ ДАННЫХ Логические данные (переменные) принимают два зна­ чения: Истина или Ложь, 1 или 0 — и обозначаются про­ писными латинскими буквами.Л, В, С, D , ..., X , Y, Z. В ком­ пьютере для логической переменной отводится два байта, или 16 разрядов, которые заполняются 1, если она имеет значение И ст ина, и 0, если значение Ложь. С логическими данными выполняются логические опе­ рации, среди которы х наибольшее применение получили операции конъюнкции, дизъюнкции, отрицания и импли­ кации. Результатом логической операции является также значение Ист ина или Ложь, 1 или 0. Конъюнкция — это операция логического умножения, которая имеет значение И ст ина, только когда истинны все входящ ие в нее логические переменные. Операцию конъюнкции принято обозначать буквой И либо значка­ ми л или &. Запишем операцию конъюнкции для двух логических переменных А и В : F = A a B. Значение логической функции F можно определить с помощ ью ее таблицы истинности, которая показывает, какие значения принимает логическая функция при всех наборах ее аргументов, например А и В (см. табл. 1.2). Одна или несколько операций конъюнкции, выполняе­ мых с логическими переменными или их отрицаниями, на­ зывается конъюнктором. Его схема приведена на рис. 1.4. 22 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Таблица 1.2 А В АаВ 1 1 1 1 1 & АлЗ Рис. 1.4 Дизъюнкция — это операция логического сложения, которая имеет значение Ложь только тогда, когда ложны все входящие логические переменные. Операцию дизъюнк­ ции обозначают буквами ИЛИ либо значками v или +. Операция дизъюнкции с двумя переменными F=AvB имеет таблицу истинности, представленную в табл. 1.3. Операция дизъюнкции с одной или несколькими логиче­ скими переменными или их отрицаниями выполняется дизъюнктором, изображенным на рис. 1.5. Таблица 1.3 А в Aw В 1 1 1 1 1 1 1 A vB Рис. 1.5 По аналогии с конъюнкцией по таблице истинности операции дизъюнкции можно определить ее выходные зна­ чения при любом наборе значений входных переменных. Логическое отрицание меняет значение переменной: ложное на истинное и истинное на ложное. Операцию ло­ гического отрицания (инверсии) логической переменной А в логике принято обозначать А или —А . Логическая функ­ ция F, являющаяся логическим отрицанием А , имеет вид F = А. 23 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ Истинность такого высказывания задается таблицей истинности функции логического отрицания (табл. 1.4). Ф ункцию логического отрицания выполняет инвертор, изображенный на рис. 1.6. Таблица 1.4 А А 1 1 Рис. 1.6 Важно подчеркнуть, что все остальные логические функции двух переменных (их всего 16) могут быть вы­ ражены через логические функции конъю нкции, дизъ­ юнкции и импликации. Импликация — это бинарная операция логического сле­ дования «если А, то В », которая имеет значение Ложь тогда и только тогда, когда истинна пере­ Таблица 1.5 менная А (посылка) и ложна пере­ А В А->В менная В (вывод). Логическая опера­ ция импликации «если А, то В» вы­ 1 ражается логической функцией 1 1 F =А В 1 1 1 1 и задается соответству ю щ ей таб­ лицей истинности (табл. 1.5). Логическую функцию импликации описывают инвер­ тор и дизъюнктор, изображенные на рис. 1.7. Если по­ строить таблицу истинности логической функции A vB (табл. 1.6), то видно, что она равносильна логической функции импликации, т. е. A v В - А —» В. Таблица 1.6 А в А Aw В 1 1 1 1 1 1 1 1 1 Aw В Рис. 1.7 24 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Из простых логических функций конъюнкции, дизъ­ юнкции, отрицания, импликации составляются сложные логические функции. Для них также можно построить таб­ лицы истинности, руководствуясь следующими правилами. 1. Определить количество строк (равно 2", где п — к о­ личество переменных). 2. Определить количество столбцов (равно сумме коли­ чества переменных и логических операций). 3. Заполнить таблицу истинности по столбцам, выпол­ няя логические операции в необходимой последователь­ ности (в скобках, отрицание, конъюнкция, дизъюнкция, импликация). П р и м е р 1 . 1 7 . Построить таблицу истинности и схе­ му логической функции F = .A v В лС . 1. Определяется количество строк: 23 + 1 = 9. 2. Определяется количество столбцов: 3 логические переменные + + 3 логические операции = 6. 3. В соответствии с порядком выполнения логических операций заполняется таблица истинности (табл. 1.7). Логической функции соответствует схема элементов, изображенная на рис. 1.8. Таблица 1.7 А в 1 1 1 1 1 1 1 1 с 1 1 1 1 с 1 1 1 1 ВлС AvB л С 1 1 1 1 1 1 1 а , 1 & Рис. 1.8 25 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ В некоторых случаях логическая функция представля­ ет собой довольно сложное и громоздкое выражение, кото­ рое можно упростить, используя приведенные ниже зако­ ны логики: 1) коммутативность: A v В = В v А, А л В = В лА; 2) ассоциативность: A v (В v С) = (A v В) v С, А л (В л С) = (А л В) л С; 3) отрицание операнда: А л А = О, A v А = 1, А = А , 1 = 0; 4 ) дистрибутивность: А л (В v С) = (А л В) v (А л С), A v (5 a C) = ( A v 5 ) a ( A v С); 5) поглощение операнда: A v ( А л В ) = A ,\ ( A v В) = А ; 6) отрицание формулы (закон де Моргана): А л В = A v В, A v В = А л В. П р и м е р 1 . 1 8 . Упростить выражение F = А л B v B v C . _____ Последовательность действий такова: _____ 1) применить дважды закон де Моргана k A a B u B v C: А л B v B v С = A v B v ( B лС ); 2) применить закон поглощения операнда k B v ( B a C) =B: A v B v (B a C) = A v 5. Ответ: F = A v В. § 1.6. ПРЕДСТАВЛЕНИЕ ТЕКСТОВЫХ ДАННЫХ Правило представления символьной информации (букв алфавита и других символов) заключается в том, что каж ­ дому символу в компьютере ставится в соответствие дво­ ичный код — совокупность нулей и единиц. Так, 1 бит (принимающий значения 0, 1) позволяет за­ кодировать два символа, 2 бита(00, 0 1 ,1 0 ,1 1 ) — 4 символа, 3 бита (ООО, 001, 0 10,1 00 , 0 1 1 ,1 0 1 ,1 1 0 ,1 1 1 ) — 8 символов 26 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ и, наконец, п битов — 2" символов. Минимальное количе­ ство битов п, необходимое для кодирования Р символов, определяется из условия Р<2\ (1.8) П р и м е р 1 . 1 9 . Какое минимальное количество битов памяти потребуется для кодирования 33 строчны х и про­ писных букв русского алфавита? Всего требуется закодировать 66 букв. При Р = 66 ми­ нимальное количество битов памяти п, при котором вы­ полняется условие (1.8): 66 < 2", будет равно 7. Ответ: п = 7. С текстовыми данными можно производить следующие операции: сравнение двоичных кодов (> , <, =, ^), слияние и разбиение текста на отдельные символы или группы сим­ волов. Наиболее распространенный стандарт кодировки сим­ волов ASCII-код (американский стандартный код для обме­ на информацией — англ. American Stand art Code for Information Interchange) был введен в СШ А еще в 1963 г. и после модификации в 1977 г. был принят в качестве всемирного стандарта. Каждому символу поставлено в соответствие дво­ ичное число от 0 до 255 (8-битовый двоичный код), напри­ мер: А — 01000001, В — 01000010, С — 01000011, D — 01000100 и т. д. Символы от 0 до 127 — латинские буквы, цифры и знаки препинания — составляют постоянную (ба­ зовую) часть таблицы. Расширенная таблица от 128-го до 255-го символа отводится под национальный стандарт. Та­ ким образом, каждый введенный в компьютер с клавиату­ ры символ запоминается и хранится на носителе в виде на­ бора из восьми нулей и единиц. При выводе текста на экран или на принтер соответствующие программно-аппаратные средства вывода выполняют обратную перекодировку из цифровой формы в символьную по тем же правилам. В настоящее время идет внедрение нового стандарта — Unicode. Этот стандарт определяет кодировку каж дого Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 27 символа не одним байтом, а двумя. Соответственно число одновременно кодируем ы х символов возрастает с 256 до 65 536. Данный стандарт позволяет закодировать одно­ временно все известные символы, в том числе японские и китайские иероглифы. Сущ ествуют и национальные стандарты кодировки. Например, в СССР был введен стандарт КОИ-8 (код обмена информацией восьмизначный), который по сей день ис­ пользуется для кодировки текста. § 1.7. ПРЕДСТАВЛЕНИЕ ГРАФИЧЕСКИХ ДАННЫХ Графические данные хранятся, обрабатываются и пе­ редаются в двоичном коде, т. е. в виде больш ого числа ну­ лей и единиц. Сущ ествую т два принципиально разных подхода к представлению (оцифровке) графических данных: растро­ вый и векторный. Для оцифровки графических изображений при рас­ тровом представлении вся область данных разбивается на множ ество точечны х элементов — пикселей, каждый из которы х имеет свой цвет. Совокупность пикселей на­ зывается растром, а изображения, которы е формирую т­ ся на основе растра, называются растровыми. Число пик­ селей по горизонтали и вертикали изображения опреде­ ляет разрешение изображ ения. Стандартными являются значения 640x480, 800x600, 1024x768, 1280x1024 и др. Каждый пиксель нумеруется, начиная с нуля, слева на­ право и сверху вниз. Пример „ пиксель представления треугольной области растровым способом | показан на рис. 1.9. | Очевидно, что чем боль« ше разрешение, тем точнее g будут формироваться графи| ческие кон туры , при этом , | естественно, возрастает коли§чество пикселей. Увеличение разрешения по горизонтали и 28 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ вертикали в два раза приводит к увеличению числа пиксе­ лей в четыре раза. При растровом способе представления графических данных под каждый пиксель отводится определенное чис­ ло битов, называемое битовой глубиной и используемое для кодировки цвета пикселя. Каждому цвету соответствует определенный двоичный код (т. е. код из нулей и единиц). Например, если битовая глубина равна 1, то под каждый пиксель отводится 1 бит. В этом случае 0 соответствует чер­ ному цвету, 1 — белому, а изображение может быть толь­ ко черно-белым. Если битовая глубина равна 2, то каждый пиксель может быть закодирован цветовой гаммой из 4 цве­ тов (22) и т. д. Для качественного представления графиче­ ских данных в современных компьютерах используются цветовые схемы с битовой глубиной 8 (1 байт), 24 (3 бай­ та), 32 (4 байта) и даже 40 (5 байт), т. е. каждый пиксель мож ет иметь 28, 224, 232, 240 оттенков. Вполне естественно, что с увеличением глубины цвета увеличивается объем памяти, необходимой для хранения графических данных. Следовательно, количество цветов N , отображ аемых на экране монитора, может быть вычислено по формуле N = 2' (1.9) где i — битовая глубина. Если известны размеры (в пикселях) рисунка по вы со­ те X и ширине Y экрана, а также битовая глубина t, то за­ нимаемый объем рисунка V будет равен V=XxYxL ( 1. 10) Отметим, что качество изображения определяется раз­ решающей способностью экрана (X х У ) и битовой глуби­ ной цвета I. П р и м е р 1.20. Файл, содерж ащ ий восьмицветный квадратный рисунок, составляет объем 2400 байт. Опре­ делить размер рисунка в пикселях. В палитре имеется 8 цветов. При подстановке N = 8 в формулу (1.9): 8 2 = вычисляется битовая глубина i = 3. Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 29 При подстановке битовой глубины i = 3, объема рисун­ ка V = 2400 х 8 = 19200 бит в формулу (1.10): 19200 = Х х У х 3, определяется величина произведения: X x Y = 6400. Из X = Y вытекает, что X х У = 80 х 80. Ответ: размер рисунка в пикселях равен 80 х 80. Основным недостатком растровой графики является большой объем памяти, необходимый для хранения изо­ бражения. Это объясняется тем, что запоминается цвет каждого пикселя, общее число которы х задается разреше­ нием, определяющим такж е качество представления гра­ фических данных. При векторном представлении графических данных задается и впоследствии сохраняется математическое опи­ сание каждого графического примитива — геометрическо­ го объекта (отрезка, окруж ности, прямоугольника и т. п.), из которых формируется изображение. Например, для вос­ произведения окруж ности достаточно запомнить полож е­ ние ее центра, радиус, толщину и цвет линии. Благодаря этому для хранения векторных графических данных тре­ буется значительно меньше памяти. Основным недостатком векторной графики является невозможность работы с высококачественными худож ест­ венными изображ ениями, фотографиями и фильмами, поэтому основной сферой применения векторной графики является представление в электронном виде чертежей, схем и т. п. Программы для работы с графическими данными де­ лятся на растровые графические редакторы (Paint, Photo­ shop) и векторные графические редакторы (Corel Draw, Visio). Приведем краткие характеристики наиболее популяр­ ных графических форматов. BM P (Bit M ap image) — растровый формат, используе­ мый в системе W indows. Поддерживается большинством графических редакторов (в частности, Paint и Photoshop). 30 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Применяется для хранения отсканированных изображений и обмена данными между различными приложениями. TIFF (Tagged Im age File Format) — растровый формат. Поддерживается различными операционными системами. Включает алгоритм сжатия без потери качества изображе­ ния. Используется в сканерах, а также для хранения и об­ мена данными. GIF (Graphics Interchange Format) — растровый формат. Включает в себя алгоритм сжатия, значительно уменьшаю­ щий объем файла без потери информации. Поддерживает­ ся приложениями для различных операционных систем. Применяется в изображениях, содержащих до 256 цветов, а также для создания анимации. Используется для разме­ щения графики в Интернете. JPEG (Joint Photographic Expert Group) — растровый формат, содержащий алгоритм сжатия, который уменьшает объем файла в десятки раз, но приводит к необратимой поте­ ре части информации. Поддерживается большинством опе­ рационных систем. Используется в основном в Интернете. PNG (Portable Network Graphic) — растровый формат, аналогичный GIF. Используется для размещения графи­ ки в Интернете. W M F (W indow s M eta file) — векторный формат для W indow s-приложений. EPS (Encapsulated PostScript) — векторный формат, поддерживаемый большинством операционных систем. CDR — векторный формат, используемый графической системой Corel Draw. В перечисленных графических редакторах для пред­ ставления цвета используются цветовые модели. Цвет овая модель — это правило, по которому может быть вычислен цвет. Самая простая цветовая модель — битовая. В ней для описания цвета каждого пикселя (чер­ ного или белого) используется всего один бит. Для пред­ ставления полноцветных изображений используются бо­ лее сложные модели, среди которы х самые известные — модели RGB и CM YK . Цвет овая модель RGB (R ed-G reen -B lu e, красны й-зеленый-синий) основана на том, что любой цвет может быть 31 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ представлен как сумма трех основных цветов: красного, зеленого и синего. В основе цветовой модели лежит декар­ това система координат. Цветовое пространство представ­ ляет собой куб, показанный на рис. 1.10. Любой оттенок цвета (сочетание трех базовых цветов с разной интенсив­ ностью) выражается набором из трех чисел. На каждое чис­ ло отводится один байт, поэтому интенсивность одного цве­ та имеет 256 значений (0 -2 5 5 ), а общее количество оттен­ ков цвета (224) — примерно 16,7 млн. Белый цвет в модели RGB представляется как (255, 255, 255), черный — (0, 0, 0), красный — (255, 0, 0), зеленый — (0, 255, 0), синий — (0, 0, 255), а оттенки серого — (К, К , К ), где 0 < К < 255. Другая цветовая модель — CM Y — является производ­ ной модели RGB и также построена на базе трех цветов: С — Cyan (голубого), М — M agenta (пурпурного) и Y — Yellow (желтого), которые образуются следующим образом. Голубой цвет С(0, 255, 255) является комбинацией синего и зеленого, желтый цвет У(255, 255, 0) — зеленого и крас­ ного, а пурпурный цвет М (255, 0, 255) — красного и сине­ го. Преобразование данных из RGB в С M Y выполняется с помощ ью простой операции с м Y 255 — 255 — 255 R G В ( 1 . 11 ) Выражение (1.11) показывает, что свет, отраженный от поверхности чисто голубого цвета, не содержит красно­ го (поскольку в этом выражении С = 255 - R). Синий (0: 0, 255) Голубой (С) (0, 255, 255) Белый (255, 255, 255) Зеленый {0? 255, 0) Пурпурный (М) (255, 0, 255) , ' УЧерный ^ (080, 0) / Я Красны й Ж е л ты й ( У ) (2 5 5 , 2 5 5 . 0 } (255,0,0) Рис. 1.10 32 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Аналогично, поверхность пурпурного цвета не отража­ ет зеленого, поверхность желтого цвета — синего. Смеше­ ние голубого, пурпурного и желтого цветов должно давать черный цвет, который, однако, выглядит осветленным по сравнению с оригиналом. Поэтому для получения чистого черного цвета при печати цветовая модель C M Y расширя­ ется до модели C MY K, содержащей четвертый основной цвет — черный (К — ЫасК). § 1.8. СТРУКТУРЫ ДАННЫХ Работа с большими объемами данных становится более продуктивной, когда данные упорядочены, т. е. образуют определенную структуру. Ш ирокое распространение полу­ чили три типа структур данных: массивы, списки и деревья. Под массивом понимают индексируемую совокупность элементов с произвольным доступом к ним. Индекс задает позицию соответствующего элемента в массиве. С помощью индекса осуществляется доступ к элементу. Массив облада­ ет размерностью, определяющей число его элементов. Различают одномерные и многомерные массивы. Одномерный массив имеет одно измерение, его приме­ ром является вектор а •••> "ч к о т о р ы й и м еет р а з м е р н о с т ь т и в к о т о р о м и н д ек с j = 1, ..., т указы вает номер элемента. Многомерный массив имеет несколько измерений. Его примером мож ет служить двумерный массив данных а 11 а 12 ~iy а 2\ а 22 а 2j ••• ••• ап а, 2 ••• ••• ап1 ап2 аи агт а а с двумя индексами (измерениями) i = 1, и размерностью п х т. п , у = 1, т 33 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ Таблица 1.8 Г азета Цена Количество Стоимость Заря 11,5 8 92 Вести 8,4 10 84 Новости 5,6 11 61,6 Многомерные массивы бывают однородными и неод­ нородными. Однородный массив состоит из элементов одного типа, а неоднородный массив — из элементов разного типа. Двумерный неоднородный массив, у которого типы дан­ ных одинаковы только в столбцах, называется таблицей. В табл. 1.8 приводятся данные трех типов: в столбце «Га­ зета» — символьные, «Цена» и «Стоимость» — веществен­ ные числа, «Количество» — целые числа. Поиск нужного элемента в таблице осуществляется так же, как и в однородном массиве. Строки в таблице называ­ ются записями, а столбцы — полями. Элементы записи имеют, вообще говоря, разный тип. Список — это набор записей, расположенных в опреде­ ленной последовательности. Его примерами могут служить список студентов группы, перечень дел надень или словарь. Различают два типа списков: непрерывный и связный. Непрерывный список предполагает, что его элементы за­ писаны один за другим в последовательные ячейки памяти. На рис. 1.11 показан расположенный в алфавитном порядке список имен, каждое из которы х занимает 8 яче­ ек памяти. Непрерывный список имеет недостаток: при удалении имени из начала списка приходится перемещать последую­ щие имена к началу списка, чтобы сохранить сущ ествую ­ щ ий порядок. Еще более слож ная проблема возникает при добавлении имени, поскольку в этом случае требуется Н ГТ~Х 1 ~Т Г Т Т Х Т Т П Г Г Х Т Т Т 1 С П П Н П П Г 1 ~ Г Т ~ а 4------ „---------------^------ ' Первэе имя Второе имя Рис. 1.11 V ------ --------' Последнее имя 34 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Указатель головы Рис. 1.12 переместить список для освобождения блока ячеек, необ­ ходимого для расширения списка. Связный список состои т из элементов, снабженных указателями на имена смеж ны х элементов. Структура связного списка показана на рис. 1.12. Здесь для записи элемента списка отводится 9 ячеек: первые восемь для имени, а последняя используется как указатель на следующее имя в списке. От указателя идет стрелка к адресу имени, на который тот указывает. Для прохождения списка надо начать с ука­ зателя головы и найти первое имя (запись). Далее необхо­ димо по указателям записей переходить от одного имени к другому до достижения пустого указателя (Nil). Здесь уда­ ление записи (например, записи «Имя 2, Указатель 2 ») оз­ начает, что меняется Указатель 1, при этом пунктирной линией со стрелкой показана связь с новым элементом, имеющим Имя 3. Важно подчеркнуть, что расположение записей связного списка в памяти компьютера может быть произвольным. Деревья — это последняя структура данных, которым соответствует организационная схема ти п ичного вуза (рис. 1.13). Чтобы дать определение дерева, введем ограничение: ни одно подразделение не подчиняется двум разным под­ разделениям более вы сокого уровня. Такую древовидную структуру данных называют иерархической. Каждый эле­ мент дерева называется узлом. Узел, находящ ийся на са­ мом высоком уровне, называется корневым, а узлы, нахо- 35 Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ Рис. 1.13 дящиеся на самом низком уровне, — терминальными. Не­ терминальные узлы связаны с нижестоящими узлами, на­ зываемыми потомками. При рассмотрении способов хранения деревьев ограни­ чимся бинарными деревьями, т. е. деревьями, с каждым узлом которы х могут быть связаны только два узла-потомка. Бинарные деревья представляют соДанные УЛП УПП бой специальную структуру связанных списков — узлов, формат которы х поРис ^ 14 казан на рис. 1.14. После ячейки с данными следуют ячейки-указатели на левого потомка (УЛП) и правого потомка (УПП). В терми­ нальных узлах значения обоих указателей равны Nil. П р и м е р 1.21. П остроить бинарное дерево, в узлах которого находятся буквы исходной упорядоченной после­ довательности А, В, С, D, Е, F, G и соответствую щ ую ему структуру связных списков — узлов. Бинарное дерево, изображенное на рис. 1.15, строится с помощью бинарного поиска. Первым корневым узлом ста­ новится центральный элемент D, разбивающий исходный список на два одинаковых по числу букв подсписка А , В, Си Е, F, G, в которых определяются два центральных элемен­ та — узлы B u F , являющиеся левым и правым потомками D. Оставшиеся элементы А , С и Е, G образуют левые и правые потомки узлов B n F соответственно. Согласно принятой на рис. 1.14 структуре узла струк тура свя зн ы х сп и ск ов , В F соответствую щ ая бинарному дереву на / \ / \ рис. 1.15, будет иметь вид, показанный на А С Е G рис. 1.16. Рис. 1.15 36 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Корневой указатель Рис. 1.16 Следует отметить, что поиск заданной буквы достаточ­ но прост: надо двигаться из корневого узла к тем потом­ кам, где она должна находиться. § 1.9. ЕДИНИЦЫ ХРАНЕНИЯ ДАННЫХ При хранении данных решаются две проблемы: как сохранить данные в наиболее компактном виде и как обес­ печить к ним удобный и быстрый доступ. В качестве еди­ ницы хранения данных принят объект переменной дли­ ны, называемый файлом. Файл — это последовательность произвольного числа бай­ тов данных, обладающая уникальным собственным именем. Обычно в отдельном файле хранят данные, относящ ие­ ся к одному типу. В этом случае тип данных определяет тип файла. Имя файла состоит из двух разделенных точ­ кой частей: собственно имени и расширения, определяю­ щего тип файла. Например: Counterbalance, gxe собствен н о им я файла расш ирение файла Собственно имя файла может состоять из русских и английских букв, цифр и специальных символов. При этом его длина не должна превышать 256 символов. В зависи­ мости от расширения все файлы делятся на две большие группы: исполняемые и неисполняемые. Исполняемые файлы — это такие файлы, которые м о­ гут выполняться самостоятельно, т. е. не требуют каких- Глава 1. ПОНЯТИЕ ИНФОРМАЦИИ 37 либо специальных программ для их запуска. Стандартные расширения имен этих файлов следующие: .ехе — готовый к исполнению файл (tetris.exe; W i n ­ Word.ехе); .сот — файл операционной системы (com m and.com); .bat — командный файл операционной системы MS-DOS (autoexec.bat). Неисполняемые файлы для запуска требуют установ­ ки специальных программ. Так, например, для того чтобы просмотреть текстовый документ, требуется наличие какого-либо текстового редактора. Вот несколько примеров расширений неисполняемых файлов: .pas — текст программы на Паскале; .bas — текст программы на Бейсике; .doc — текст, выполненный в редак­ торе W ord; .mdb — файл СУБД Access; .xls — электронная таблица Excel; .arj — упакованный файл; .zip — упакован­ ный файл; .txt — текст, выполненный в редакторе Блокнот. Расширения графических файлов, создаваемых в рас­ тровых графических редакторах (Paint, Photoshop): .bmp, .tiff, .gif, .jpeg, .png: в векторных графических редакторах (Corel Draw, Visio): .cdr, .eps, .ivmf, .vsd и др. Хранение файлов организуется в иерархической струк­ туре, которая называется файловой структурой. На вер­ шине структуры находится имя носителя, на котором со­ храняются файлы и каталоги (папки). Далее следует кор­ невой каталог, содержащий вложенные каталоги первого уровня, каждый из которы х может содержать вложенные каталоги второго уровня и т. д. Н еобходимо отметить, что в каталогах всех уровней могут находиться файлы, сгруппированные по любому об­ щему признаку, заданному их создателем (по типу, по принадлежности, по назначению, по времени создания и т. п.). Правила присвоения имени каталогу ничем не отлича­ ются от правил присвоения имени файлу, но каталогам не принято задавать расширения имен. Имена промежуточ­ ных каталогов разделяются между собой обратной косой чертой (\). На рис. 1.17 приведен пример иерархической структуры диска С. 38 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Рис. 1.17 Внешние носители (диски или дискеты), на которых хранится информация, имеют свои имена — каждый диск обозначается буквой латинского алфавита, а затем ставит­ ся двоеточие. Так, для дискет всегда отводятся буквы А : и/или В:. Логические диски винчестера именуются начи­ ная с буквы С:. После всех имен логических дисков следу­ ют имена дисководов для компакт-дисков. Например, у с­ тановлены дисковод для дискет, винчестер, разбитый на 3 логических диска, и дисковод для компакт-дисков. Оп­ ределим буквенные имена всех носителей информации: А : — дисковод для дискет; С:, D :, Е: — логические диски винчестера; F: — дисковод для компакт-дисков. Полное имя файла. Уникальность имени файла обес­ печивается тем, что полным именем файла считается соб­ ственное имя файла вместе с путем доступа к нему. На од­ ном носителе не мож ет быть двух файлов с одинаковыми полными именами. Ниже приводится пример записи пол­ ного имени файла: <имя носителя>\<имя каталога-1>\... ...\<имя каталога-М >\<собственное имя файла> Используя иерархическую структуру диска С (рис. 1.17), запишем полное имя файла b l.b a s : C:\nPOrPAM M bI\BASIC\bl .bas Для наглядности имена каталогов (папок) напечатаны прописными буквами, а имена файлов — строчными. Ir i i i i Ii 1! il I ' l i i l liii 'IN I , i Im l i i I I i: ililM'li li ilM i liiii li\ illi Г Л А В А ill l i i l i 11Ш11 В Т О Р А Я ТЕХНИЧЕСКИЕ СРЕДСТВА РЕАЛИЗАЦИИ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ § 2.1. ОСНОВНЫ Е ЭТАПЫ РАЗВИТИЯ ИНФОРМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ История создания вычислительной техники уходит в глубь веков. В своем развитии она прошла три основных этапа: • механический (до 90-х гг. X IX в.); • электромеханический (до 40-х гг. X X в.); • электронный (с 40-х гг. X X в.). Рассмотрим основные моменты каж дого этапа. Более трех тысяч лет в Средиземноморье было распро­ странено простое приспособление для счета (абак): доска, разделенная на полосы, где перемещались камешки или кости. Российский вариант абака представлял собой сче­ ты с костяш ками. В Древнем Риме абак назывался calculi. Абак позволял лишь запоминать результат, а все арифме­ тические действия должен был выполнять человек. Первая механическая машина, выполняющая арифме­ тические операции, была построена немецким ученым Вильгельмом Ш иккардом в 1623 г. Одной из наиболее известных суммирую щ их машин до середины XVII в. была «Паскалина», созданная в 1642 г. французом Блезом Паскалем (1 6 2 3 -1 6 6 2 ). Известны шести- и восьмиразрядные машины Паскаля, которые могли суммировать и вычитать десятичные числа. Позже, в 1673 г., другой немецкий ученый-математик Вильгельм Лейбниц (1 6 4 6 -1 7 1 6 ) расширил возможности машины Паскаля, добавив операции умножения, деления и извлечения квадратного корня и впервые использовав двоичную систему счисления. 40 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Завершающий шаг в эволюции цифровых вычисли­ тельных устройств (механического типа) сделал англий­ ский ученый Чарльз Беббидж (1791-1871). Аналитическая машина (так назвал ее Беббидж), проект которой он разра­ ботал в 1834 г., явилась механическим прототипом по­ явившихся спустя столетие электронных вычислительных машин (ЭВМ). В ней предполагалось иметь те же, что и в ЭВМ, пять основных устройств: арифметическое, памяти, управления, ввода, вывода. Программа выполнения вы­ числений записывалась на перфокартах (пробивками), на них же записывались исходные данные и результаты вы ­ числений. Автоматическое выполнение программы вычис­ лений обеспечивалось устройством управления. Время сло­ жения двух 50-разрядных десятичных чисел составляло, по расчетам ученого, 1 секунду, умножения — 1 минуту. Однако Беббидж и его аналитическая машина остались не понятыми современниками. Следует отметить, что в это время параллельно с разви­ тием технических устройств для вычислений начинает развиваться и программирование вычислений. Дочь Бай­ рона Ада Августа Лавлейс (1 8 1 5 -1 8 5 2 ) по праву считается первым программистом. Она разрабатывала программы для машины Беббиджа, которые во многом оказались сх о­ жими с программами, составленными впоследствии для первых ЭВМ. В истории развития вычислительной техники трудно переоценить заслугу выдающегося англичанина Джорджа Буля (1 8 1 5 -1 8 6 4 ), разработавшего еще в X IX в. алгебру логики (алгебру Буля), ставшую через сто лет математиче­ ской основой для проектирования схем ЭВМ, использую­ щ их двоичную систему счисления. Венцом механических вычислительных машин была машина Z1, разработанная в 1937 г. немецким студентом Конрадом Цузе (1 9 1 0 -1 9 9 5 ), работу над которой он начал за год до получения диплома инженера. Машина Z1 была, подобно машине Беббиджа, чисто механической, но в ней была реализована двоичная система и логика, подобная булевой, представление чисел с плавающей запятой и трех­ адресная система программирования. Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 41 На этом заканчивается интересная эпоха механических вычислительных машин, которая заложила основы бур­ ного развития электромеханических и электронных вы­ числительных машин. В 1941 г. Конрад Цузе создал первую в мире релейную вычислительную машину с программным управлением Z3, содержащ ую 2000 реле устройства памяти и 600 реле счет­ ного устройства. Машина считывала программу механи­ чески шаг за шагом и осуществляла 1 5 -2 0 вычислитель­ ных операций в секунду. Период сложения у Z3 составлял 0,3 секунды. В 40-х гг. X X в. наступило время, когда объем расчет­ ных работ в развиты х странах стал нарастать, как снеж ­ ный ком, в первую очередь в области военной техники, чему способствовала Вторая мировая война. Это послу­ жило мощным толчком к развитию ЭВМ. В 1942 г. сотруд­ ник технической ш колы при Пенсильванском универси­ тете (СШ А) физик Д жон Мочли (1 9 0 7 -1 9 8 6 ) отправил в военное ведомство С Ш А предложение о создании мощ но­ го, по тем временам, компьютера на электронны х лам­ пах (ЭНИАК). К работе было привлечено около 200 че­ ловек, в том числе несколько десятков математиков и ин­ ж енеров. Р уководителям и работы стали Д ж он Мочли и талантливый инж енер-электронщ ик Проспер Эккерт (1 9 1 9 -1 9 9 5 ). Напряженная работа завершилась в конце 1945 г. успеш ными испытаниями ЭНИАК. Впечатляю­ щими были размеры ЭНИАК: 26 м в длину, 6 м в вы соту, вес 35 тонн. В 1945 г. для разработки ЭВМ в качестве консультанта был направлен выдающийся математик Джон фон Нейман (1903 -1 957). В 1946 г. фон Нейманом и другими учеными Принстон­ ского института перспективных исследований был пред­ ставлен отчет «Предварительное обсуж дение логического конструирования уст ройст ва» , который содержал раз­ вернутое и детальное описание принципов построения циф­ ровых электронных вычислительных машин (ЭВМ). Из­ ложенные в отчете принципы были реализованы во всех последующ их ЭВМ и носили название «неймановские». 42 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Работы по созданию ЭВМ после Второй мировой войны велись и в СССР. В 1948 г. Сергеем Алексеевичем Лебеде­ вым (1 9 02 -1 974) был предложен первый проект отечест­ венной цифровой ЭВМ, а первые образцы ЭВМ, известные под названием МЭСМ (малая электронная счетная маши­ на), появились через несколько лет. В начале 1960-х годов под руководством С. А . Лебедева создается первая большая электронная счетная машина БЭСМ-1, которая тогда была самой производительной машиной в Европе и одной из луч­ ших мире. Начиная со второй половины X X в. развитие техниче­ ских средств пошло значительно быстрее. Это время при­ нято делить на четыре этапа, которые имеют свои харак­ терные особенности. Первый этап — до 1955 г. За точку отсчета эры ЭВМ принимается 1946 г., когда началась эксплуатация первых опытных образцов ЭВМ. Ключевым моментом этого этапа было применение электронных ламп. Ламповые ЭВМ име­ ли большие габариты и массу, потребляли много энергии и были очень дорогостоящ ими, что резко сужало круг поль­ зователей ЭВМ, а следовательно, объем производства этих машин. Числа в ЭВМ вводились с помощ ью перфокарт и набора переключателей, а программа задавалась соедине­ нием гнезд на специальных наборных платах. Наиболее яркими представителями ЭВМ первого эта­ па были в СССР МЭСМ (малая электронно-счетная маши­ на) и ЭНИАК в СШ А. Также в этот период в СШ А разрабатывается и патен­ туется память на магнитных сердечниках (1951), а в СССР выпускается первая серийная ЭВМ «С трела». Второй этап — до 1965 г. Развитие электроники при­ вело к изобретению нового полупроводникового устройст­ ва — транзистора, которы й заменил лампы. Появление ЭВМ, построенных на транзисторах, привело к уменьше­ нию их габаритов, массы, энергозатрат и стоимости, а так­ же к увеличению их надежности и производительности. Первым транзисторным компьютером стал компьютер «Традис» фирмы «Белл телефон лабораторис», построен­ ный на 800 транзисторах. Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 43 В этот же период стали создавать алгоритмические язы­ ки для инженерно-технических и экономических задач. Так, в 1955 г. появился «переводчик формул» FORTRAN (FORmula TRAN slator). Для экономии машинных ресур­ сов (машинного времени и памяти) стали создавать опера­ ционные системы, (комплексы служебных программ, обес­ печивающих лучшее распределение ресурсов ЭВМ при вы­ полнении пользовательских задач). Первые операционные системы просто автоматизировали работу оператора ЭВМ, связанную с выполнением задания пользователя: ввод в ЭВМ программы, вызов нужного транслятора, вызов необ­ ходимых библиотечных программ и т. д. В 1957 г. фирмой IBM были разработаны дисковые за­ поминающие устройства. Первый ж есткий диск имел раз­ мер 24 дюйма, вмещал 5 Мбайт данных и стоил более мил­ лиона долларов. Начало третьего этапа (до 1979 г.) связано с создани­ ем технологии производства интегральных схем (ИС), где в одном кристалле размещалось несколько десятков ты ­ сяч электронных элементов. ИС позволили увеличить бы ­ стродействие и надежность полупроводниковых схем, а также уменьшить их габариты, потребляемую мощность и, следовательно, стоимость. В этот период появляются простые, дешевые и надеж­ ные машины — мини-ЭВМ (IBM 360 в СШ А и ЕС 1030 в СССР). Четвертый этап — с 1980 г. по настоящее время. За счет улучшения технологии ИС повсеместно приступают к изготовлению схем сверхбольшой степени интеграции — СБИС. С 1982 г. фирма IBM приступила к изготовлению про­ фессиональных персональных компьютеров IBM PC с опе­ рационной системой MS-DOS. В 1984 г. компании Apple и IBM выпускают ЭВМ чет­ вертого поколения — персональные компьютеры Macin­ tosh и P C /A T соответственно. Развитие ЭВМ четвертого поколения продолжается до сегодняшнего дня. Стремительно возрастающие объемы информации предопределяю т такое ж е стремительное 44 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ развитие аппаратных средств. Сейчас персональный ком­ пьютер с процессором Intel четвертого поколения имеет тактовую частоту до 3000 МГц. До середины 1990-х годов фирма Intel не имела конкурентов на рынке процессоров, пока другая американская фирма AMD не приступила к выпуску процессоров для IBM-совместимых компьютеров. В следующ их разделах будут рассмотрены аппаратные и программные средства современных персональных компь­ ютеров (ПК) — ЭВМ четвертого поколения. § 2.2. АРХИТЕКТУРА, СОСТАВ И НАЗНАЧЕНИЕ ОСНОВНЫХ ЭЛЕМЕНТОВ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА По определению, архитектура — это описание слож ­ ной системы, состоящ ей из множества элементов, как еди­ ного целого. Архитектура современного персонального компьютера является обобщением принципов построения ЭВМ, предло­ женным группой ученых во главе с Джоном фон Нейманом. В классической архитектуре неймановской ЭВМ мож ­ но выделить 5 основных блоков, показанных на рис. 2.1. С помощ ью устройств ввода (УВв) данные и програм­ мы, представленные в двоичной форме, попадают в оперативно-запоминающее устройство (ОЗУ), или память, ма­ шины. Для реализации команд, образующ их программу, используется арифметико-логическое устройство (АЛУ), выполняющее арифметические операции, операции срав­ нения, алгебры логики и др. Взаимодействие ОЗУ и АЛУ осуществляет устройство управления (УУ). С его помощью программа из ОЗУ передается в А Л У , оты ­ скиваются нужные данные, выполняются вычисления, происходит запись в память и организуется выдача результата посред­ ством устройства вывода (УВыв). Реальная структура современного ком ­ пьютера значительно сложнее, что обуслов­ лено стремлением к повышению его произ­ водительности и функциональных возмож­ Рис. 2.1 ностей (рис. 2.2). 45 Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА Рис. 2.2 Так, в структуре персональной ЭВМ появилась кэш ­ память, введены каналы прямого доступа к оперативной памяти, используемые для обмена данными с устройства­ ми ввода/вывода, минуя микропроцессор. Периферийные устройства подключаются к аппарату­ ре компьютера через специальные контроллеры (К) или адаптеры (А) — устройства управления, освобож дая про­ цессор от непосредственного управления данным оборудо­ ванием. В архитектуре персонального компью тера появился сопроцессор — устройство, функционирующее параллель­ но с главным процессором и выполняющее специфические операции: например, математический сопроцессор пред­ назначен для слож ных математических вычислений. Системный блок является центральной частью ПК. В корпусе системного блока размещены внутренние уст­ ройства ПК. В состав системного блока входят следующие устройства: • системная (материнская) плата с микропроцессором; • оперативная память; • накопитель на ж естком магнитном диске; 46 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ • контроллеры или адаптеры для подключения и управ­ ления внешними устройствами ПК (монитором, звуко­ выми колонками и др.); • порты для подключения внешних устройств (принтер, мышь и др.); • внешние запоминающие устройства (ВЗУ) для гибких магнитных дисков и лазерных дисков типа CD-ROM и DVD-ROM. Системная плата является интегрирующ им (объеди­ няющ им) узлом ПК. Системная плата во многом опреде­ ляет конфигурацию ПК, поскольку от ее параметров за­ висит тип используемого микропроцессора, максималь­ ный объем оперативной памяти, количество и способы подключения внешних устройств ПК и другие характе­ ристики. Микропроцессор (или процессор) — это главная мик­ росхема компьютера. Он запускает программный код, на­ ходящийся в памяти, и управляет всеми устройствами ком­ пьютера либо напрямую, либо через соответствующ ие кон­ троллеры. Основой лю бого микропроцессора является ядро, к о ­ торое состоит из миллионов транзисторов, располож ен­ ных на кристалле кремния. М икропроцессор имеет спе­ циальные ячейки, которы е называются регистрами об­ щ его назначения (РО Н ). Работа п роц ессора состои т в выборе из памяти в определенной последовательности команд и данных и их выполнении. Для повыш ения бы ­ стродействия ПК м икропроцессор снабжен внутренней кэш -памятью . Процессоры Intel, используемые в IBM-совместимых ПК, насчитывают более тысячи команд и относятся к про­ цессорам с расширенной системой команд — CISC-процессорам (CISC — Complex Instruction Set Com puting). Обмен данными и командами между внутренними уст­ ройствами ПК происходит по проводникам многожильно­ го кабеля — системной шине. Основной задачей систем­ ной шины является передача данных между процессором и остальными электронными узлами компьютера. Разли­ чают три вида шин: Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 47 • шина данных; • шина адреса; • шина команд. Ш ина дан н ы х. По этой шине происходит передача данных из оперативной памяти в РОН процессора и на­ оборот. В ПК на базе процессоров Intel Pentium шина дан­ ных 64-разрядная, т. е. за один такт на обработку посту­ пает сразу 8 байт данных. Шина адреса. По этой шине передаются адреса ячеек оперативной памяти, где находятся команды, которые не­ обходимо выполнить процессору. Кроме этого, по этой шине передаются данные, с которыми оперируют коман­ ды. В современных процессорах адресная шина 32-разрядная, то есть она состоит из 32 параллельных проводников. Шина команд. По этой шине из оперативной памяти поступают команды, выполняемые процессором. Коман­ ды представлены в виде байтов. Простые команды занима­ ют один байт, а более сложные — два, три и больше бай­ тов. Большинство современных процессоров имеют 32-разрядную командную шину, хотя сущ ествуют 64-разрядные процессоры с 64-разрядной командной шиной. Рассмотрим основные шинные интерфейсы системных плат, но более подробно остановимся на шине USB. USB (Universal Serial Bus). Универсальная последова­ тельная шина USB является обязательным элементом со­ временного ПК, она пришла на смену устаревшим парал­ лельным и последовательным портам. Ш ина USB пред­ ставляет собой последовательный интерфейс передачи данных для средне- и низкоскоростны х периферийных устройств. Она позволяет подключить до 256 разных уст­ ройств с последовательным интерфейсом. Ш ина USB под­ держивает автоопределение (Plug and play) новы х у ст­ ройств, а такж е так называемое «горячее» подключение, то есть подключение к работающ ему компью теру без его перезагрузки. Скорость передачи данных по USB состав­ ляет 1,5 М би т/с. Приведем без пояснения другие типы шин: ISA (Industry Standard A rchitecture), PC I (Periph­ eral Component Interconnect), FSB (Front Side Bus), AGP (Advanced Graphic Port). 48 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Все виды запоминающих устройств, расположенные на системной плате, образуют внутреннюю память ПК, к которой относятся: • оперативная память; • сверхоперативная память (кэш-память); • постоянная память. Оперативная память RAM (Random Access Memory) ис­ пользуется для хранения исполняемых в данный момент про­ грамм и необходимых для этого данных. Через оперативную память происходит обмен командами и данными между мик­ ропроцессором, внешней памятью и периферийными устрой­ ствами. Высокое быстродействие определяет название (опе­ ративная) данного вида памяти. Ключевой особенностью опе­ ративной памяти является ее энергозависимость, т. е. данные хранятся в ней только при включенном компьютере. По физическому принципу действия различают дина­ мическую память DRAM и статическую память SRAM. Динамическая память при всей простоте и низкой стоимости обладает существенным недостатком, заклю­ чающимся в необходимости периодической регенерации (обновлении) содерж имого памяти. М икросхемы динамической памяти используются как основное оперативное запоминающее устройство (ОЗУ), а микросхемы статической — для кэш -памяти. Кэш-память (Cache memory) используется для повы­ шения быстродействия ПК. Принцип «кэш ирования» за­ ключается в использовании быстродействующ ей памяти для хранения наиболее часто используемых данных или команд, при этом сокращается количество обращений к более медленной оперативной памяти. Пост оянная память ROM (Read Only Memory) пред­ назначена для хранения неизменяемой информации и раз­ мещается в микросхеме постоянного запоминающего уст­ ройства (ПЗУ). М икросхема ПЗУ способна продолжитель­ ное время сохранять информацию даже при отключенном компьютере, поэтому постоянную память такж е называ­ ют энергонезависимой памятью. Комплект программ, находящийся в ПЗУ, составляет базовую систему ввода/вывода BIOS (Basic Input/Output Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 49 System). BIOS содержит программы управления клавиа­ турой, видеокартой, дисками, портами и другими устрой­ ствами. Основное назначение этих программ состоит в том, чтобы проверить состав и работоспособность системы и обеспечить взаимодействие основных узлов ПК до загруз­ ки какой-либо операционной системы. Кроме этого, в BIOS входит программа тестирования, которая выполняется при включении компьютера. §2.3. УСТРОЙСТВА ХРАНЕНИЯ ДАННЫХ Память является составной частью аппаратных средств ПК. В памяти хранятся как программы, так и данные. Па­ мять персонального компьютера подразделяется на внут­ реннюю и внешнюю. Внутренняя память предназначена для временного хранения программ и обрабатываемых в текущ ий момент данных (оперативная память, кэш -память), а также для долговременного хранения информации о конфигурации ПК (энергонезависимая память). Внешняя память исполь­ зуется для длительного хранения большого объема данных и программ. Физической основой внутренней памяти, как было по­ казано ранее, являются электронные схемы (ПЗУ, ОЗУ), отличающиеся высоким быстродействием, но не позволяю­ щие хранить большие объемы данных. Кроме этого, опе­ ративная память является энергозависимой, т. е. при от­ ключении ПК ее содержимое стирается. В персональных компьютерах функция длительного хранения больш их объемов данных возложена на внешнюю память, которая является медленной, энергонезависимой и практически неограниченной. Внеш няя память — это память, реализованная в виде внешних относительно материнской платы устройств с разными принципами хранения информации и типами носителей, предназначенных для долговременного хра­ нения данных. В современных компьютерах использую т­ ся три вида носителей: электрические, магнитные, опти­ ческие. 50 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Накопитель представляет собой совокупность носите­ ля данных и соответствующ его привода. Различают нако­ пители со сменными и постоянными носителями. Привод — это объединение механизма чтения/записи с соответствующ ими электронными схемами управления. Его конструкция определяется принципом действия и ви­ дом носителя. Носитель — это физическая среда хранения информа­ ции. По внешнему виду может быть дисковым или ленточ­ ным. По способу запоминания различают магнитные, оп­ тические и магнитооптические. В ленточных носителях используют магнитные, а в дисковы х — магнитные, маг­ нитооптические и оптические методы записи/считывания информации. Накопит ель на гибких магнит ных дисках (НГМД, FDD — Floppy Disk Drive) представляет собой устройство (дисковод) для чтения и записи гибких магнитных дисков (дискет). Магнитный диск вращается с помощ ью привода, для записи и считывания информации используются маг­ нитные головки. Магнитные диски являются съемными носителями, т. е. один дисковод может последовательно работать с мно­ жеством дискет. Стандартная емкость дискет (3,5 дюйма), используемы х в современных ПК, составляет 1,44 Мб. Маркировка дискеты «2HD 1,44 МЬ» указывает на двух­ стороннюю вы сокую плотность записи и общ ую емкость диска 1,44 Мб. Информация на дискету записывается по дорожкам-окружностям (трекам). Каждая дорожка разби­ вается на сектора размером в 256, 512 или 1024 байт, но чаще 512 байт, образующие кластеры. Кластер — это минимальная единица размещения ин­ формации на диске, состоящ ая из одного или нескольких секторов и равная обычно 512 байт. Каждому файлу выде­ ляется участок памяти, кратный определенному количе­ ству кластеров. Накопитель на ж естких магнитных дисках (НЖМД, винчестер, HDD — Hard Disk Drive) — устройство для чте­ ния/записи с ж естких магнитных дисков, установленных внутри накопителя. Накопители на ж естких магнитных Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 51 дисках получили такое наименование из-за ж есткости дис­ ковы х пластин — носителей данных. В НЖ М Д несколько пластин, нанизанных на стержень. Дисковые пластины вращаются с постоянной скоростью , которая составляет для современных НЖМД до 10 ООО оборотов в минуту. Чте­ ние и запись данных осущ ествляются блоком магнитных головок, которые расположены над рабочей поверхностью диска на расстоянии 0 ,5 -0 ,1 3 мкм. Запись проводится на обе поверхности каждой пластины (кроме крайних). Работой НЖМД управляет специальное аппаратно-логическое устройство — контроллер НЖМД. В накопителе может быть до десяти дисков. Здесь информация также раз­ мещается на дорожках, секторах и кластерах, которые об­ разуются во время форматирования диска. Форматирова­ ние выполняет пользователь с помощью специальных про­ грамм. Отметим наиболее важные характеристики НЖМД: • скорость (частота) обращения дисков: для накопителей IDE — 4 5 0 0 -7 2 0 0 об/м и н , а для накопителей SCSI — 7 5 0 0 -1 0 0 0 0 об/м ин; • емкость кэш -памяти в устройствах может изменяться от 64 Кб до 8 Мб. Накопитель на магнитной лент е, именуемый стри­ мером, — это устройство для быстрой перезаписи данных с ж есткого диска на магнитную ленту. Стримеры работа­ ют со съемными носителями — кассетами. Недостатки стримеров: большое время доступа к данным и недостаточ­ ная надежность, связанная с повышенными механически­ ми нагрузками. М агнитооптические накопители (НМОД) во многом аналогичны НГМД, но отличаются более высокой емко­ стью . В магнитооптических дисках информация также хранится на магнитном носителе-дискете, но чтение и за­ пись осущ ествляются оптическим (лазерным) лучом, что значительно повышает сохранность носителя. Оптическими устройствами хранения данны х явля­ ются оптические накопители CD-ROM (Compact Disk Read Only Memory — постоянное запоминающее устройство на основе ком пакт-дисков), унаследовавшие свое название от первых оптических носителей. В качестве носителя 52 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ информации первые оптические накопители использова­ ли компакт-диски (CD), которые записывались («прож и­ гались») однократно, не допускали перезаписи и фактиче­ ски являлись постоянными запоминающими устройства­ ми, на что и указывает приставка ROM. Накопители на оптических дисках получили широкое распространение благодаря большой емкости компакт-диска (свыше 650 Мб), поэтому они являются превосходными носителями для больших программных продуктов и муль­ тимедийных данных. Компакт-диски изготовляют из про­ зрачного пластика диаметром 120 мм и толщиной 1,2 мм. На пластиковую поверхность напыляется слой алюминия или золота. Запись на диск происходит путем выдавлива­ ния на поверхности дорожки углубления. Компакт-диск раскручивается электродвигателем. На поверхность диска с помощью привода оптической систе­ мы фокусируется луч из лазерного излучателя. Луч отра­ жается от поверхности диска и сквозь призму подается на датчик. Световой поток превращается в электрический сигнал, который поступает в микропроцессор, где он ана­ лизируется и превращается в двоичный код. В настоящее время широко используются 4 вида оптических накопи­ телей. Накопитель CD-ROM (CD Read Only Memory) исполь­ зуется для чтения оптических компакт-дисков. Накопитель CD-R (CD-Recordable) — внешне похожий на накопитель CD-ROM и совместимый с ним по размерам дисков и формату записи, позволяет выполнить одноразо­ вую запись и неограниченное количество считываний. Накопитель CD-RW (CD-Re Writable) используется для многоразовой записи данных, причем можно как дописать новую информацию на свободное пространство, так и пол­ ностью перезаписать диск (предыдущие данные уничтожа­ ются). Накопитель DVD (Digital Video Disk) — устройство для записи и чтения цифровых видеозаписей. Внешне DVDдиск похож на обычный CD-диск (диаметр — 120 мм, тол­ щина — 1,2 мм), однако отличается более высокой плот­ ностью записи (на одной стороне DVD-диска может быть Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 53 записано до 4,7 Гбайт). Запись на DVD-диск производится на обе поверхности. Основной характеристикой оптических накопителей является скорость передачи данных, которая измеряется в кратных долях скорости проигрывателя аудио-компактдисков (150 К б /с) и характеризует максимальную ско­ рость, с которой накопитель передает данные в оператив­ ную память компьютера. Например, 2-скоростной CD-ROM (2х) будет считывать данные со скоростью 300 К б/с, 50-скоростной(50х) — 7500 К б/с. Перспективными носителями данных являются элек­ тронные схемы, использующие Flash- (флэш-) память. Flash-пэмять относится к статической энергонезависимой памяти. По устройству чип flash-памяти напоминает мик­ росхему динамической энергозависимой памяти, только вместо конденсаторов ячейками памяти являются полу­ проводниковые приборы (транзисторы), принимающие одно из фиксированных положений — закрытое или от­ крытое, тем самым моделируя логические ноль и едини­ цу. Отличительные особенности носителей с flash-пэмятью: компактность, энергонезависимость, высокая ем­ кость, бесшумная работа. Эти устройства подключаются к компьютеру, как правило, через интерфейс USB. § 2 .4 . УСТРОЙСТВА ВВОДА/ВЫВОДА Устройства ввода и вывода (ввода/вывода) являются обязательными элементами любой ЭВМ, поскольку имен­ но они обеспечивают взаимодействие пользователя с вы­ числительной системой. С одной стороны, пользователь вводит команды или данные в компьютер через устройства ввода для их обра­ ботки, с другой стороны, вычислительная система выдает пользователю результаты своей работы посредством уст­ ройств вывода. Все устройства ввода/вывода ПК относятся к перифе­ рийным устройствам, т. е. подключаемым к микропроцес­ сору через системную шину и соответствующие контрол­ леры. С развитием вычислительной техники существенное 54 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ развитие получили и устройства ввода/вывода. На сегодняш­ ний день существуют целые группы устройств (например, устройства местоуказания, мультимедиа), которые обеспе­ чивают эффективную и удобную работу пользователя. К основным устройствам ввода относятся клавиатура, мышь, сканер, джойстик, трекбол, графический планшет. Клавиатура предназначена для ввода алфавитно-циф­ ровых данных и команд управления в интерактивном ре­ жиме взаимодействия ПК и пользователя. Клавиатура — стандартное средство ПК, поэтому для реализации ее ос­ новных функций не требуется наличие специальных сис­ темных программ (драйверов). Необходимое программное обеспечение для работы с клавиатурой находится в микро­ схеме постоянной памяти в составе базовой системы вводавывода BIOS. Стандартная клавиатура включает от 101 до 104 клавиш, размещенных по стандарту QWERTY (в верх­ нем левом углу алфавитной части клавиатуры находятся клавиши Q, W , Е, R, Т, Y). Клавиши клавиатуры разбиты на несколько функциональных групп: • алфавитно-цифровые; • функциональные; • управления курсором; • служебные; • клавиши дополнительной панели. Алфавитно-цифровые клавиши (русские и латинские символы, цифры, специальные символы) используются для ввода знаковой (символы алфавита) информации и команд, которые набираются по буквам, при этом каждая клавиша может работать в двух режимах (регистрах). Переключе­ ние между нижним регистром (ввод маленьких символов) и верхним регистром (ввод больших символов) осуществля­ ется при нажатии клавиши (нефиксированное пе­ реключение) или с помощью клавиши (фик­ сированное переключение). Группа функциональных клавиш включает двенадцать клавиш с обозначением F1-F12, расположенных в верх­ ней части клавиатуры. Функции этих клавиш зависят от работающей в текущий момент времени программы, а в некоторых случаях и от операционной системы. Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 55 Клавиши управления курсором (Т, — >1, <—) подают ко­ манды на передвижение курсора по экрану монитора отно­ сительно текущего изображения. Курсором называется эк­ ранный элемент, указывающий на место ввода знаковой информации. К этой группе, помимо указанных клавиш, относятся клавиши и , прокручи­ вающие текст на страницу вверх или вниз соответственно, а также клавиши < Н оте> и , устанавливающие кур­ сор на начало и конец строки соответственно. Служебные клавиши используются для разных вспо­ могательных целей, таких как изменение регистра, вклю­ чение режима вставки, образование комбинаций «горя­ чих» клавиш и т. д. К этой группе относятся такие клави­ ши, как , , , , , , , и др. Группа клавиш дополнительной панели дублирует дей­ ствие цифровых клавиш, клавиш управления курсором и некоторых служебных клавиш. Основное назначение — ввод чисел, поэтому клавиши размещены в порядке, удоб­ ном для такой работы. Переход в режим дублирования клавиш управления курсором и наоборот осуществляется нажатием на клавишу . Манипулятор «мышь» — наиболее распространенный манипулятор, позволяющий перемещать указатель (кур­ сор мыши) по экрану дисплея и указывать им на опреде­ ленные объекты на экране (т. е. вводить в компьютер ко­ ординаты выбранной точки на экране). Наиболее просты механические мыши, в основании которых имеется ша­ рик, вращающийся при перемещении мыши по ровной поверхности. Более дорогой и сложной, но более точной и надежной является оптическая мышь, перемещающаяся на планшете, покрытом сеткой линий (отражающих или поглощающих свет). Для работы с мышью требуется на­ личие специальной системной программы — драйвера. Драйвер манипулятора устанавливается при его подклю­ чении или при загрузке операционной системы. Разные модели манипуляторов для IBM PC могут иметь две или три кнопки. В последнее время появились мыши, исполь­ зующие вместо средней кнопки колесо (мыши NET Scroll). 56 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Трекбол — устройство, по принципу работы аналогич­ ное мыши, но в отличие от нее устанавливаемое стацио­ нарно. Шарик трекбола, как правило, встраивается в кла­ виатуру и приводится в движение ладонью руки. Трекбол обычно используют в портативных компьютерах — ноут­ буках, поскольку он не нуждается в гладкой рабочей по­ верхности. Джойстик — манипулятор, выполняемый в виде ры­ чажка (ручки) на массивном основании. Управляющие сигналы вырабатываются движениями ручки и нажатием кнопок (подобных кнопке мыши), расположенных на ней. Джойстики чаще всего используют для управления объек­ тами в компьютерных играх. Графический планшет (дигитайзер — от англ. digiti­ z e r — «оцифровыватель»)— планшет, покрытый сеткой пьезоэлементов — элементов, вырабатывающих электрическийтокпри механическом воздействии. Дигитайзеры, как правило, используются для ввода карт или планов в ЭВМ. Для этого на графическом планшете размещается лист с изображением, и надавливанием по контуру изо­ бражения в компьютер вводятся координаты точек. Устройства ввода мультимедиа не нашли широкого применения из-за низкой производительности ПК, поэто­ му среди них остановимся только на сканере. Сканер — это устройство оптического ввода, предна­ значенное для ввода в ПК черно-белых или цветных изо­ бражений, а также для считывания текста с бумажного носителя для последующей обработки. Сканированные оригиналы оцифровываются и после ввода в ПК обрабаты­ ваются с помощью специального программного обеспече­ ния (например, для распознавания текста — программа FineReader), а затем сохраняются в виде текстового или графического файла. Сканеры подразделяются на план­ шетные и ручные. В планшетных сканерах оригинал помещается на стек­ ло, под которым перемещается оптико-электронное счи­ тывающее устройство. В барабанных сканерах оригинал протягивается барабаном мимо неподвижного считываю­ щего устройства. Барабанные сканеры не позволяют ска­ Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 57 нировать книги, переплетенные брошюры и т. п. Ручной сканер плавно перемещается вручную по поверхности ори­ гинала. Основными характеристиками сканеров являются раз­ решающая способность и глубина цвета. Разрешающая способность. Сканер воспринимает лю­ бой объект как набор отдельных точек (пикселей). Плот­ ность пикселей (количество на единицу площади) назы­ вается разрешающей способностью сканера и измеряется в dpi (количество точек на дюйм). Качество сканирова­ ния зависит от оптической разрешающей способности (оп­ ределяется количеством светочувствительных элементов матрицы на дюйм) и механической разрешающей способ­ ности (определяется дискретностью движения светочув­ ствительного элемента или системы зеркал относительно листа). Существуют черно-белые и цветные сканеры. Со­ временные цветные сканеры поддерживают глубину цве­ та до 32 разрядов (т. е. цвет одного пикселя кодируется 32-разрядным двоичным словом) при разрешающей спо­ собности 1200 dpi. К основным устройствам вывода относятся монитор и принтер. Монитор ( дисплей) — так же, как и клавиатура, яв­ ляется обязательным элементом ПК, предназначенным для вывода на экран текстовой и графической информации. Соответственно монитор может работать в двух режимах: текстовом и графическом. В текстовом режиме экран раз­ бивается на знакоместа, на каждое из которых выводит­ ся один из 256 символов таблицы стандарта ASCII. В гра­ фическом режиме на экран выводятся изображения по пикселям. По принципу формирования изображения наи­ более распространенными являются мониторы на электронно-лучевой трубке — CRT (Cathode-Ray Tube) и жидко­ кристаллические мониторы на тонкопленочных транзи­ сторах — TFT-LCD (Thin-Film Transistor Liquid-Crystal Display). Монитор с электронно-лучевой трубкой подобен те­ левизору и включает электронно-лучевую трубку, блок питания и блок управления лучом. 58 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Электронно-лучевая трубка представляет собой электронно-вакуумное устройство в виде стеклянной колбы, в горловине которой находится электронная трубка. Изобра­ жение на экране монитора формируется из множества рас­ положенных рядами светящихся точек-пикселей. Точки высвечиваются в результате удара электронного луча о внут­ реннюю поверхность экрана, на которую нанесен фосфорес­ цирующий состав — люминофор (в цветных мониторах люминофорные триады с красным, зеленым и синим излуче­ нием, из комбинации которых формируется требуемый цвет). Электронный луч, управляемый системой отклоне­ ния, обегает экран строку за строкой слева направо, сверху вниз, причем делает это десятки раз в секунду, благодаря чему изображение устойчиво для человеческого глаза. В основе LCD-мониторов лежит технология формиро­ вания изображения с помощью жидких кристаллов. Жид­ кие кристаллы представляют собой молекулы, которые могут перетекать как жидкость. Эти молекулы пропуска­ ют свет, но под действием электрического заряда изменя­ ют ориентацию. Монитор на жидких кристаллах отличается безбликовым плоским экраном и более низкой мощностью потреб­ ляемой энергии по сравнению с CRT-монитором. Выводом изображения на экран монитора управляет специальное устройство — видеоадаптер (видеокарта). Видеоадаптер представляет собой плату расширения, к о­ торую вставляют в определенный слот материнской пла­ ты (в современных ПК это слот AGP или PCI). Видеоадап­ тер полностью управляет выводом изображения на экран монитора. Для этого он оснащен видеопамятью и собст­ венным процессором. Монитор как периферийное устрой­ ство подключается к системной шине ПК через один из разъемов видеоадаптера. Сформированное изображение до вывода на экран хра­ нится в видеопамяти видеоадаптера. Требуемый объем ви­ деопамяти зависит от заданной разрешающей способности и палитры цветов, поэтому для работы в режимах с высо­ кой разрешающей способностью и полноцветной гаммой нужно как можно больше видеопамяти. Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 59 Разрешающая способность определяется количеством пикселей по горизонтали и вертикали, например 640x480, 800x600, 1024x768, 1600x1200 и т. д. Соотношение коли­ чества пикселей по горизонтали и вертикали отражает со­ отношение геометрических размеров экрана монитора, в данном случае 4:3. Палитра цветов — это множество цве­ тов, которые способна отображать видеосистема, она оп­ ределяется количеством битов двоичного слова, которое используется для кодировки одного оттенка цвета. В цвет­ ных мониторах для кодировки цвета используется от 4 до 32 бит. Требуемый минимальный объем видеопамяти опреде­ ляется произведением количества пикселей по горизонта­ ли на количество пикселей по вертикали (разрешающая способность) и на количество байтов двоичного слова, ко­ торым кодируется палитра цветов. Объем видеопамяти для мониторов MDA, CGA, EGA, VGA, SVGA и PGA изменяет­ ся от 128 Кб до 128 Мб. Помимо разрешающей способности и палитры цветов к основным параметрам мониторов и видеоподсистемы в целом относятся размер монитора, частота кадровой раз­ вертки, параметры безопасности. Размер монитора. Экран монитора измеряется по диагонали в дюймах (1 дюйм = 2,54 см). Стандартные раз­ меры: 14, 15, 17, 19 и 21 дюйм. Наиболее распростране­ ны мониторы с диагональю 15 и 17 дюймов. Для работы с графикой предпочтительны мониторы размером 1921 дюйм. Частота кадровой развертки показывает частоту пол­ ного обновления изображения на экране. Частота регене­ рации измеряется в герцах (Гц). Чем больше частота, тем менее заметно мерцание экрана и соответственно меньше усталость глаз. Минимально допустимой считается часто­ та в 75 Гц, нормальной — 85 Гц, комфортной — 100 Гц и больше. Параметры безопасности. По оценке специалистов, наиболее опасное воздействие на пользователя ПК ока­ зывает электромагнитное излучение мониторов, которое можно снизить за счет использования различного рода 60 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ защитных фильтров: сеточных, пленочных, металлизиро­ ванных и пр. Следует также помнить, что при работе на ПК расстояние до экрана монитора должно быть не мень­ ше 50 см. Принтер — устройство вывода текста и графики на печать. По способу нанесения красителя на бумагу разли­ чают следующие виды принтеров: матричные, струйные, лазерные. В матричном принтере изображение выводится на бумагу с помощью специальной движущейся головки, в которой содержится несколько (9, 24 или 48) иголок, на­ носящих удары по листу бумаги через красящую ленту. Матричные принтеры с небольшим количеством иголок имеют разрешение на уровне 140-200 dpi (точек на дюйм), более качественные — 24-игольчатые — до 360 dpi. Игол­ ки, расположенные в печатающем узле, управляются элек­ тромагнитом. Во время продвижения печатающего узла по строке на бумаге появляются отпечатки символов, состоя­ щие из точек. В памяти принтера хранятся коды отдель­ ных символов. Эти коды определяют, какие иголки следу­ ет активизировать для печати определенного символа. Матричные принтеры, несмотря на все свои недостат­ ки (низкую скорость печати, высокий уровень шума, низ­ кое качество печати графики и текста и др.), находят при­ менение в различных организациях (в банках, пунктах обмена валюты, паспортно-визовых службах и др.) для пе­ чати финансовых и отчетных документов из-за высокой надежности печати от фальсификации. В матричных прин­ терах краска «вбивается» иголками в бумагу, и поэтому подделать такой документ сложнее. В струйных принтерах красящее вещество (чернила) из специальной емкости выдувается на бумагу с помощью системы капиллярных распылителей, число которых в среднем от 16 до 400, а в некоторых моделях цветных струй­ ных принтеров и более 400. Струйные принтеры использу­ ют два метода распыления чернил: пьезоэлектрический метод (фирма Epson) и метод газовых пузырьков (Hewlett Packard). В первом случае распыление чернил выполняет специальная диафрагма, на которую воздействует пьезо­ Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 61 элемент. Во втором случае, в методе газовых пузырьков, каждый распылитель оборудован нагревающим элемен­ том. При прохождении сквозь элемент микросекундного импульса тока чернила нагреваются до температуры ки­ пения, и образуются пузырьки, выдавливающие чернила из распылителя на бумагу. Цветная печать выполняется путем смешивания раз­ ных цветов в определенных пропорциях, поэтому принте­ ры оснащаются картриджами с разными цветами чернил. Печатающий узел проходит по одному месту листа несколь­ ко раз, нанося нужное количество чернил разного цвета. После смешивания чернил на листе появляется участок нужного цвета. Струйные принтеры обладают высоким качеством печати черного текста и цветной графики до 3600x1200 dpi, благодаря чему позволяют печатать полно­ цветные фотографии. Основной недостаток струйных прин­ теров заключается в высокой стоимости печати. Лазерные принтеры являются самыми перспектив­ ными принтерами, обеспечивающими высокое качество (черно-белой) печати при низкой стоимости. Элемента­ ми лазерного принтера являются источник света (лазер), светочувствительный барабан (фотобарабан), красящий порошок (тонер) и блок термического закрепления тоне­ ра. В лазерных принтерах реализован метод электрофо­ тографической печати. Под воздействием света на соот­ ветствующих участках фотобарабана скапливается элек­ трический заряд. Источник света — лазер мощностью несколько десятков милливатт с длиной волны 7 0 0 800 нм, который точечно наэлектризовывает барабан со светочувствительным покрытием. Для того чтобы по­ крыть всю область печати по ширине листа, луч отклоня­ ется подвижной оптической системой, состоящей из линз и зеркал. Частицы тонера прилипают к заряженным уча­ сткам барабана, после этого барабан контактирует с лис­ том бумаги, электрический заряд которого противополо­ жен заряду барабана. В результате частицы тонера пере­ ходят на бумагу. В блоке термического закрепления тонер закрепляется на бумаге под воздействием температуры и давления. 62 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ При цветной печати изображение формируется смеши­ ванием тонеров разного цвета за 4 прохода листа через пе­ чатающий механизм. При каждом проходе на бумагу на­ носится определенное количество тонера одного цвета. Цветной лазерный принтер является сложным электрон­ ным устройством с 4 емкостями для тонера, оперативной памятью, процессором и жестким диском, что соответст­ венно увеличивает его габариты и стоимость, именно по­ этому цветная лазерная печать пока не находит широкого применения. Преимущества монохромной лазерной печати по срав­ нению со струйной заключаются в более высоком качестве печати текста, стойкости отпечатков к воздействию влаги и света, низкой стоимости печати, а также более высокой скорости печати. Плоттер (графопостроитель) — устройство для выво­ да чертежей на бумагу. Их используют в проектных ин­ ститутах, конструкторских бюро и т. п. Устройство плот­ теров аналогично устройству струйных принтеров, только они значительно больше по размерам. По конструкции плоттеры делятся на планшетные и рулонные. В планшет­ ных плоттерах материал, на который идет вывод, фикси­ руется, а печатающий узел перемещается в двух направле­ ниях — по осям X и Y. В рулонных плоттерах бумага пере­ мещается в вертикальном направлении, а печатающий узел — в горизонтальном направлении. Более высокое ка­ чество вывода графической информации обеспечивают планшетные плоттеры. Устройства связи предназначены для приема и пере­ дачи (ввода и вывода) информации между двумя и более ПК. В зависимости от целого ряда параметров (типа ли­ нии связи, вида подключения, удаленности ПК и др.) ис­ пользуются различные устройства связи. Модем (модулятор-демодулятор) — устройство, преоб­ разующее информацию к виду, в котором ее можно пере­ давать по телефонным линиям связи. Модемы выполняют цифроаналоговое преобразование цифровых сигналов ПК для их передачи по телефонной линии связи или аналогово-цифровое преобразование аналоговых сигналов из ли­ Глава 2. ТЕХНИЧЕСКИЕ СРЕДСТВА 63 нии связи в цифровые сигналы для обработки в ПК. Моде­ мы передают данные по обычным телефонным каналам со скоростью до 56000 бит в секунду. Также модемы осуще­ ствляют сжатие данных перед отправлением, поэтому их реальная скорость может превышать максимальную ско­ рость модема. Сетевой адаптер (сетевая плата) — электронное уст­ ройство, выполненное в виде платы расширения (адаптер может быть интегрирован в системную плату) с разъемом для подключения к линии связи. Сетевой адаптер исполь­ зуется для подключения ПК к локальной компьютерной сети. :l li: ii Ш: 1!: |I: 1: il li: ii 1i: ll: il: liii il: ii: :h ^1: :h iil li li: T il: ^i: il: li: Г Л А В А ili HI T lii lii ' Т Р Е Т Ь Я ПРОГРАММНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ § 3 .1 . КЛАССИФИКАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Огромные масштабы применения персональных ком­ пьютеров привели к бурному развитию программного обеспечения. Под программным обеспечением компьюте­ ра (ПО) понимается комплекс разработанных для него программ, предназначенных для решения различных за­ дач. В зависимости от области использования можно вы­ делить три вида программных продуктов: прикладное ПО, системное ПО и системы программирования. Прикладное программное обеспечение служит для ре­ шения конкретных задач пользователя. В состав приклад­ ного ПО входят пакеты прикладных программ различного назначения, рабочие программы пользователя и програм­ мы, разрабатываемые специализированными организа­ циями. Пакеты прикладных программ (ППП) являются очень эффективным средством автоматизации различных практических задач. Среди пакетов программ следует выделить MS Office. Большое развитие получили ППП для различных предмет­ ных областей: бухгалтерского учета, финансового менедж­ мента, правовых систем и т. д. К бухгалтерским ППП следует отнести «1C. Бухгал­ терия», «Квестор», «Бест», «Монолит-Инфо» и др. ППП финансового менеджмента в основном ориентиро­ ваны на финансовый анализ предприятий (ЭДИП — «Центринвест Софт», Альт-Финансы — «Альт», Финансовый ана­ лиз — «Инфософт») и оценку эффективности капиталовло- 65 Глава 3. ПРОГРАММНЫЕ СРЕДСТВА жений и инвестиций (Project Expert — PRO-Invest Consalting, Альт-Инвест — «Альт», FOCCAL — «ЦентринвестСофт»). ППП правовых справочных систем насчитывают более десятка правовых систем, среди которых наиболее извест­ ными следует считать ППП « Консультант Плюс », « Гарант » и «Ю сис». Системное программное обеспечение организует и под­ держивает работу компьютера и компьютерных сетей. Это осуществляется с помощью операционной системы (ОС) и служебных программ, поставляемых в составе ОС или до­ полнительно. Операционная система — это программа, которая предназначена для управления выполнением прикладных программ, планирования и управления ресурсами ком­ пьютера (оперативной памятью, местом на дисках и т. д.). ОС должна содержать программные компоненты, пока­ занные на рис. 3.1, часть из которых обслуживает пери­ ферийные устройства: мышь, монитор, принтер и др. ОС можно разбить на три основные группы: однозадач­ ные (однопользовательские), многозадачные (многополь­ зовательские) и сетевые. Однозадачные ОС предназначены для работы одного пользователя в каждый конкретный момент с одной кон­ кретной задачей. Типичным представителем таких ОС яв­ ляется MS-DOS, разработанная фирмой Microsoft. Рис. 3.1 66 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Многозадачные ОС обеспечивают коллективное ис­ пользование ЭВМ в мультипрограммном режиме, когда в памяти ЭВМ находится несколько задач-программ, а про­ цессор распределяет ресурсы между ними. К многозадач­ ным ОС относятся: UNIX, OS/2, Windows, Linux. Сетевые ОС связаны с появлением локальных и гло­ бальных сетей и служат для обеспечения доступа пользо­ вателя ко всем ресурсам вычислительной сети. В число се­ тевых ОС входят: Net Ware, MS Windows NT, Unix и др. Служебные программы, называемые утилитами, пред­ назначены для обслуживания и оптимизации работы ком­ пьютера. В составе ОС они используются для работы с фай­ ловой системой и дисками, архивации и восстановления файлов, проверки системы и т. д. Служебные программы, которые поставляются дополнительно, будут рассмотрены в § 3.3. Командный процессор представляет собой специальную программу, которая запрашивает у пользователя коман­ ды и выполняет их. Благодаря командному процессору пользователь взаимодействует с сетевыми ресурсами. Файловая система обеспечивает чтение и запись фай­ лов на дисковых носителях информации. Файловая сис­ тема устанавливает физическую и логическую структуру файлов, правила их создания и управления ими, а также сопутствующие данные файла. ОС может работать с од­ ной или несколькими файловыми системами, например FAT (File Allocation Table — таблица размещения фай­ лов), NTFS (NT File System — файловая система NT), NFS (Network File System — сетевая файловая система) и др. Система ввода/вывода служит для управления пери­ ферийными устройствами при обслуживании приложений. Связь устройств с компьютером организуется через порты ввода/вывода и контроллеры с помощью программы, на­ зываемой драйвером. Драйвер — это программа, обеспечивающая управление периферийным устройством (мышью, монитором, принте­ ром и др.). Часть этих программ встроена в ОС, а другая соз­ дается разработчиками оборудования на языках низкого уровня (Assembler, С) и поставляется вместе с устройствами. Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 67 Система программирования — это комплекс программ­ ных средств, который реализует проектирование, кодиро­ вание, тестирование и отладку программ на каком-либо язы­ ке программирования. Система программирования включает входной язык программирования, транслятор, машинный язык, библио­ теки стандартных программ и средства отладки оттранс­ лированных программ. § 3 .2 . ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS Операционные системы корпорации M icrosoft можно разделить на три семейства: Windows 3.1 и 3.11, W in­ dows 95/98/М е и Windows NT, 2000, ХР, Vista. В период с 1981 по 1986 г. для персонального компьюте­ ра IBM PC корпорацией Microsoft поверх MS-DOS был до­ бавлен графический интерфейс, именуемый Windows 3.1 и 3.11. Начиная с 1995 г. были выпущены ОС Windows 95, 98, поддерживающие 16- и 32-разрядные коды. Эти ОС про­ должали использовать файловую систему MS-DOS со все­ ми ее недостатками. Отличие Windows 98 от Windows 95 заключалось в интерфейсе, включавшем Интернет и рабо­ чий стол пользователя. В 2000 г. Microsoft выпустила немного измененную вер­ сию Windows 98, названную Windows Me {Windows Millen­ nium Edition — Windows, выпуск тысячелетия). Она со­ держала улучшенные функции организации совместного использования изображений, музыки и фильмов, а также сети Интернет. В 1993 г. была выпущена первая 32-разрядная версия, именуемая Windows NT 3.1 (New Technology — новая тех­ нология). Затем в 1996 г. появились версии NT 4.0 и NT 5.0. Последняя версия в 1999 г. была переименована в W in­ dows 2000, на которой сосредоточим основное внимание. В основе операционной системы Windows лежат три основные концепции: концепция объекта, концепция окна и концепция рабочего стола. Концепция объекта. Каждый файл, папка, устройство ПК имеют имя и представляются как объекты, которые 68 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ отображаются на экране с помощью специальных значков, различных для разных типов объектов. Каждый объект обладает набором характерных для его типа свойств. Концепция окна. Для каждого активизируемого объ­ екта открывается окно, в котором отображается его содер­ жимое, если объект имеет иерархическую структуру (пап­ ка, устройство), или процесс и результат его работы, если объект является исполняемым файлом, т. е. программой. Концепция рабочего стола. Все объекты и открываю­ щиеся для них окна размещаются (или могут быть разме­ щены) на рабочем столе. В Windows реализованы три технологии работы с объ­ ектами. Технология Plug and Play (включи и работай) ориен­ тирована на поддержку любого типа устройств, включая мониторы, принтеры, звуковые карты и т. д. Технология Drag and Drop (перетащи и положи) позво­ ляет легко изменить положение любого окна и его размеры. Технология OLE {Object Linking and Embedding) при­ меняется для связывания и внедрения документов, кото­ рые готовятся в различных приложениях. При доступе к данным на диске 32-разрядная операци­ онная система Windows 2000 использует хранящуюся на нем таблицу размещения файлов FAT 32, которая содер­ жит информацию о расположении файлов, свободном про­ странстве на диске и неисправных кластерах. W indows поддерживает объектно-ориентированный графический интерфейс пользователя (рис. 3.2). Это озна­ чает, что такие видимые на экране монитора элементы, как рабочий стол, ярлык и панель задач, обладают собствен­ ными свойствами, функциями и реакциями на действия пользователя. На рабочем столе размещаются различные элементы, доступные для взаимодействия с помощью мыши или кла­ виатуры. Дадим характеристику основных папок, находящих­ ся на рабочем столе. 1. Мой компьютер обеспечивает доступ к локальным ресурсам данного компьютера. 69 Глава 3. ПРОГРАММНЫЕ СРЕДСТВА Ярлык Каскадное системное меню в »С 1 > в гр * »и» г.? Ь ллпгйгатвТоо^ 6 АЛЫ jif / Ъccrei Vtrejj ю АГЮ тапад» Л& cr*jsCokrPagrVttW ’XU5BvlOO •Ь**го5ог« СЗ GfifcttPro 601 -Ь Marten ■Я Q jbiTim e 5*xrltv a set** ftNMM S JVrtrc .3СAМ rrДcСaПrpИvЬrУТ'eЛСЛСЛКв_____ ООЛ5ЙEinan ПQjer>J?To'-i3C ’• 3 и . 70 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Первая панель каскадного системного меню содержит следующие наиболее важные команды: • Пуск, Настройка служит для добавления в системное меню нового пункта меню или имени команды; • Пуск, Найти предназначена для поиска нужного фай­ ла, папки или сетевого компьютера; • Пуск, Выполнить представляет средства поиска и за­ пуска разнообразных приложений и системных утилит; • Пуск, Программа открывает следующее меню с про­ граммами. Если выполнить команду Пуск, Программы, Стандарт­ ные, то появится меню с перечнем программ, встроенных в ОС Windows. К ним относятся: • текстовый редактор W ord Pad (файлы с расширения­ ми .rtf, .doc); • текстовый редактор Блокнот (.txt); • графический редактор Paint (.bmp); • программа для работы с файлами и папками Провод­ ник; • калькулятор; • игры. В разделе Служебные находятся служебные програм­ мы, выполняющие архивацию файлов, восстановление системы, дефрагментацию диска и др. Рассмотрим основные элементы Windows — окна — на примере окна программы Мой компьютер (рис. 3.3). Строка заголовка окна. В левой части строки размещен значок, щелчок на котором приводит к раскрытию меню управления окном. Далее следует название окна (оно име­ нуется в соответствии с именем папки, приложения или в комбинации приложение-документ). В правой части стро­ ки размещены кнопки управления размерами окна. Строка меню (строчное меню). Она начинается с пунк­ та раскрывающегося меню Файл, в котором содержатся команды работы с файлами (сохранения и открытия). В пункте меню Правка имеются команды редактирова­ ния файлов (удаления, перемещения и копирования). Ко­ манды пункта Вид задают внешний вид и расположение значков файлов и папок. 71 Глава 3. ПРОГРАММНЫЕ СРЕДСТВА Панель адреса Заголовок окна Строка меню / Панель инструментов / / 11*1 М ой к о м п ь ю т е р Н П О 1дхзлл Ораскв Вид ДОумнное Cgpowc £грзекэ I * Назад *• -* • И ДЛоиак -Лц=п-и ч^Журнзп / ЕЭ / •- г*- х л _.]» / «■Переход Адрес|йМ с« ксм-ьотер Пдгуи ^ Рабом** етап в У ________________ Мсм комгалстео Ди* 3,5 (А.) • £S М ое « т е е м о к р у ж е н * * гакср»>« >□Enews вв □ Лариса вQМ узька 9 □ -э a JU Лс*ал*ыа лсгагъны^ Кстакт-диек Гйне/ъ №*х(С:) ЛгХжCO.J СЕ:) угцмелг»* ПЛ НДфТЫ D Статья для Дубровского до 30.0 Панель «Папки» Строка состояния QGwxqb.I 21 ВПуек] а * 0 В * 53 -I а Я » ^Документ! .... ЦjJMoa Щмойгапюпр ^3|Я«© 12:27 Панель содержимого папки Рис. 3.3 Панель инструментов содержит кнопки, часть из кото­ рых дублирует команды строчного меню. В левой панели (зоне) «Папки» отображаются папки, а в правой — содержи­ мое этих папок (если они предварительно активизированы). Строка состояния (статусная строка) служит для вы­ вода информации о результатах действий пользователя и работе системы. В окне «Мой компьютер» и окне «Проводник» могут выполняться следующие операции с объектами: создание, перемещение, копирование и удаление. 72 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ § 3 .3 . СЛУЖЕБНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Служебные программы (утилиты) — это программы, используемые при работе или техническом обслуживании компьютера для выполнения вспомогательных функций, таких как: работа с файлами и каталогами, сжатие инфор­ мации, резервирование данных, запись на компакт-диски, просмотр и конвертация файлов и др. 3.3.1. ФАЙЛОВЫЕ МЕНЕДЖЕРЫ С момента появления программы Norton Commander похожие на нее файловые менеджеры стали необходимым приложением на любом компьютере. Все они предназна­ чены для разнообразной работы с файлами: копирования, переноса, удаления, редактирования текстовых файлов, гибкого запуска программ. Самыми популярными файл-менеджерами сегодня в России являются FAR Manager и Total Commander (быв­ ший Windows Commander). Все программы работают под управлением Windows. FAR Manager. Norton-подобный файл-менеджер, кото­ рый может работать как в полноэкранном, так и в оконном режимах, поддерживает длинные имена файлов, коррект­ но работает с русскими буквами, а встроенный редактор позволяет переключаться между DOS- и Windows-кодировками. Программа поддерживает большинство известных архивных форматов и позволяет архивировать и разархи­ вировать, просматривать, редактировать и запускать на выполнение файлы из архивов. В системе предусмотрены развитая система управления горячими клавишами и очень большой набор встроенных функций, которые существен­ но расширяют возможности FAR Manager, дополняя и мо­ дифицируя их. Тotal Commander. Если FAR Manager выбирают те поль­ зователи, которые привыкли работать с Norton Commander, то люди, начинавшие с Windows, предпочитают Total Com­ mander. Он продолжает традицию двухпанельных файловых менеджеров, но в большей степени ориентирован на W in­ Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 73 dows-интерфейс. Так же как и у многих Windows-программ, интерфейс Total Commander легко настраивается, причем от­ регулировать можно буквально все: цвета, наборы панелей, цвета для групп файлов, иконки папок и документов. Ин­ терфейс Total Commander позволяет просматривать содер­ жимое носителей с использованием настраиваемых закла­ док. Имеется поддержка архиваторов ZIP, ARJ, LZH, GZ, TAR, RAR и АСЕ. Наряду со стандартными возможностями, характерными для данного класса приложений, программа обладает целым рядом особенностей, которые способны су­ щественно ускорить навигацию по дискам и папкам. К та­ ким особенностям относятся: запоминание часто используе­ мых каталогов, история последних посещенных каталогов, быстрый поиск, в том числе внутри файлов, многофунк­ циональные возможности настройки горячих клавиш, удоб­ ная панель инструментов с поддержкой drag and drop, лег­ кая работа с комментариями к файлам и папкам и др. 3.3.2. СЖАТИЕ ИНФОРМАЦИИ Вследствие неуклонно растущих объемов обрабатывае­ мой информации особое значение приобретает сжатие дан­ ных. Существуют два разных подхода к сжатию данных, хранимых на внешних носителях. Первый подход заключается в сжатии данных всего носителя (диска). Недостатком такого подхода является замедление работы компьютера, поскольку при любом об­ ращении к диску информацию нужно или сжимать при записи, или возвращать к нормальному состоянию при счи­ тывании. Кроме этого, данные на сжатом диске гораздо сложнее восстановить при сбоях в компьютере. Более эффективным является второй подход, заклю­ чающийся в сжатии отдельных файлов или папок. Эту процедуру называют архивацией данных. Программы, ис­ пользуемые при архивации отдельных файлов, называют­ ся архиваторами. Эффективность сжатия информации оценивается коэффициентом сжатия, который определя­ ется как отношение размера исходных данных к размеру сжатых. В основе всех алгоритмов сжатия данных лежат три теоретических алгоритма: 74 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ • алгоритм RLE (Run Length Encoding); • алгоритмы группы K W E (Key W ord Encoding); • алгоритм Хоффмана. Алгоритм RLE основан на подсчете последовательности идущих одинаковых цифр и записи вместо таких последо­ вательностей двух чисел: значение числа повторений и зна­ чение повторяющегося числа. Например, последователь­ ность чисел 444444555333339999991111111 кодируется следующей совокупностью числовых данных 64 35 53 69 71. Алгоритм K W E основан на сжатии данных по ключе­ вым словам. В основу алгоритма положен принцип коди­ рования лексических единиц (часто повторяющихся по­ следовательностей символов, отдельных слов или фраз) группами байтов фиксированной длины. В результате ко­ дирования формируется словарь. Алгоритмы LZ (Лемпеля-Зива) и LZW (Лемпеля-ЗиваВелча) по сути являются модификациями .ЙП^Е-алгоритма. В алгоритме LZ словарь лексических единиц форми­ руется каждый раз при сжатии новых данных. В алгорит­ ме LZW для сжатия данных используется составленная таблица фраз (словарь). Алгоритмы сжатия этой группы наиболее эффективны для текстовых данных больших объ­ емов и малоэффективны для файлов маленьких размеров (за счет необходимости сохранения словаря). Алгоритм Хоффмана использует частотный анализ вход­ ной последовательности данных, то есть устанавливает час­ тоту повторения каждого символа. После этого символы сор­ тируются по уменьшению частоты вхождения. Сжатие про­ исходит за счет кодирования часто встречающихся символов битовыми группами меньшей длины. Алгоритм Хоффмана универсальный, его можно применять для сжатия данных любых типов, но он так же, как и алгоритм KWE, малоэф­ фективен для маленьких файлов. По характеру воздействия алгоритмы сжатия делятся на необратимые и обратимые. При использовании необратимых алгоритмов, кото­ рые также называются алгоритмами сжатия с потерями Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 75 информации, изменяется содержимое данных так, что при восстановлении (разархивировании) данных из архива не происходит их полного восстановления. Такие алгоритмы можно применять только для таких типов данных, для которых потеря части содержимого не приводит к сущест­ венному искажению информации, например для видео- и аудиоданных, а также графических данных. Такие мето­ ды сжатия неприменимы к текстовым данным, так как могут привести к потере смысловой информации. Частич­ ная потеря информации при сжатии предусмотрена фор­ матами ;JPEG — для графических данных, MPEG — для видеоданных и M P3 — для аудиоданных. Обратимые алгоритмы сжатия изменяют структуру данных, но не содержание, поэтому при разархивирова­ нии данные восстанавливаются полностью. Форматы фай­ лов, поддерживающие обратимые алгоритмы сжатия: GIF, TIFF — для графических данных, AVI — для видеоданных и ZIP, ARJ, RAR — для произвольных типов данных. Ар­ хиваторы W inZip и W inRAR, как правило, используют сочетание всех трех алгоритмов. 3.3.3. ПРОГРАММЫ РЕЗЕРВИРОВАНИЯ ДАННЫ Х Всегда существует вероятность потери информации. Поэтому нужно не только беречь информацию, но и уметь оперативно восстанавливать ее в случае необходимости, для чего требуется резервное копирование данных, т. е. периодическое создание копий нужной информации. В Windows 2000 имеются средства резервного копиро­ вания и восстановления данных — Backup And Recovery Tools (Средства архивации и восстановления), а также Backup Wizard (Мастер архивации) — служебная програм­ ма, облегчающая архивирование и восстановление данных. Для рядового пользователя лучше выбрать более простые и дешевые программы, например Handy Backup или BackUp 32, которые работают под управлением Windows. Handy Backup представляет собой простую и удобную программу для автоматического создания копий докумен­ тов и данных, которые могут быть сохранены на любом устройстве (как внешнем, так и внутреннем, в том числе и 76 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ на CD-RW) или отправлены на FTP-сервер, а при необходи­ мости восстановлены. При этом можно сохранять не только отдельные файлы и папки, но и письма из MS Outlook, сис­ темный реестр или ICQ-переписку. Программа умеет рабо­ тать по расписанию, сжимать файлы в ZIP-архивы, поддер­ живает 128-битное шифрование и синхронизацию данных. BackUp 32. Основное назначение программы — резер­ вирование данных с возможностью автоматического сжа­ тия как с использованием встроенного ZIP-совместимого модуля сжатия, так и за счет подключения внешних архи­ ваторов. Поддерживаются циклы удаления устаревших ар­ хивов по возрасту архива и по количеству архивов в ар­ хивной директории. В числе возможностей программы — присвоение имени архиву в формате даты, посылка в сеть сообщения. 3.3.4. ПРОГРАММЫ ЗАПИСИ КОМПАКТ-ДИСКОВ К наиболее популярным программным продуктам это­ го класса относятся пакеты Nero (например, Nero Burning ROM) и Roxio (Easy Media Creator, WinOnCD). Все они уни­ версальны, позволяют записать любой диск — CD или DVD, содержат много дополнительных приложений для обработ­ ки разнообразной информации и могут снабдить записан­ ный диск профессиональной наклейкой. Следует иметь в виду, что многие из огромного количества программ дан­ ного направления ориентированы только на создание от­ дельных видов дисков — аудио-CD, видео-CD и т. п. Все программы работают под управлением W indows 9 5 /9 8 / N T 4 /M e/20 0 0/X P , поддерживают всю гамму пишущих приводов — как классические внутренние приводы CD-R/ RW , D VD -R/RW , D VD +R /R W и DVD-RAM, так и внеш­ ние приводы IDE, SCSI с интерфейсами USB 2.0 и даже FireWire — и обладают возможностью перезаписи. 3.3.5. ПРОГРАММЫ ПРОСМОТРА И КОНВЕРТАЦИИ Сегодня вся техническая документация поставляется в формате PDF. Для работы с этим форматом существует удобная бесплатная утилита Acrobat Reader от компании Adobe. Однако часто необходимо не только просмотреть Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 77 документ, но и извлечь из него текст и/или изображение. С этой целью проще всего воспользоваться соответствую­ щей утилитой, например PDF2Word. Кроме того, в настоящее время практически каждый пользователь работает с медиаинформацией, для просмот­ ра которой чаще всего необходим целый набор просмотрщиков: для картинок — один, для видео — другой, для прослушивания музыки — третий. Для этих целей необ­ ходимо использовать специализированные программы, работающие под управлением Windows. Adobe Reader (известный как Acrobat Reader) — попу­ лярная программа для просмотра и печати PDF-документов, которая совершенно необходима, поскольку значи­ тельное количество файлов, скачиваемых из Интернета, представлены сегодня в формате PDF. Последняя версия поддерживает проигрывание встроенных в документы фай­ лов QuickTime, Macromedia Flash, Real и Windows Media, распечатку документов через беспроводные сети и ряд дру­ гих усовершенствований. PDF2Word — удобная и простая утилита, предназна­ ченная для экспорта изображений и текста из PDF-файла в документ W ord в формате RTF. Для конвертации PDFфайла достаточно его открыть, а результатом по оконча­ нии работы PDF2Word станет появление в той же папке копии экспортируемого файла, но уже в формате RTF. MegaView позволяет просматривать не только картин­ ки, видео и звук, но и другие файлы, в общей сложности поддерживая свыше 100 различных форматов. Наряду с просмотром файлов в MegaView реализованы многие функ­ ции редактирования. § 3 .4 . ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ОБРАБОТКИ ТЕКСТОВЫХ ДОКУМЕНТОВ В текстовых документах очень важными элементами являются символ, абзац, колонтитул, стиль. Кратко опи­ шем их. Символ — это наименьший элемент текста, называе­ мый иногда знакоместом. Символом может быть буква, цифра, специальный знак. 78 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Абзац — часть текста между двумя символами перево­ да строки (в редакторах это соответствует нажатию кла­ виши ). Если документ большой и предназначен для печати, то используются средства структурирования текста: главы, параграфы. Названия их могут выноситься в колонтитулы. Колонтитул — это надпись вверху или внизу каждой страницы документа (колонтитулом может быть название главы или название параграфа). Стиль — набор установленных пользователем парамет­ ров форматирования текста, имеющий уникальное имя. Под форматированием текста будем понимать измене­ ние его внешнего вида (типа, размера и начертания шриф­ та, величины полей и т. д.), под редактированием — изме­ нение его содержания (удаление, вставка и копирование символов и фрагментов). Научные тексты, как правило, со­ провождаются таблицами, формулами, диаграммами. Программы подготовки документов можно разбить на текстовые редакторы и текстовые процессоры. Текстовые редакторы обеспечивают минимальные возможности по подготовке небольших и простых доку­ ментов. Сюда входят операции ввода, перемещения, встав­ ки, удаления и копирования как отдельных символов, так и фрагментов текста. Текстовыми редакторами являются Блокнот и W ordPad, встроенные в операционную систему Windows. Текстовые процессоры — это программы, предостав­ ляющие более широкий круг (по сравнению с редактора­ ми) возможностей форматирования (шрифты, таблицы, формулы), создания документов, содержащих данные раз­ ных типов (подготовка и вставка графических данных), создания электронных документов. Типичным представи­ телем этой группы является Word. Существует еще одна группа текстовых процессоров — это настольные издательские системы. Они используются для верстки и, как текстовые процессоры, позволяют наби­ рать и форматировать документ, но имеют широкий спектр читаемых форматов, т. е. возможность работать с файлами, созданными во многих других программах: текстовых, гра­ Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 79 фических, чертежных. К издательским системам относятся PageMaker, QuarkXPress, ориентированные на издание хо­ рошо иллюстрированных брошюр и книг, а также Т е Х, Corel Ventura, FrameMaker, ориентированные на подготов­ ку технической литературы, содержащей формулы. 3.4.1. ТЕКСТОВЫЙ РЕДАКТОР БЛОКНОТ (NOTEPAD) Блокнот предназначен для создания небольших, объ­ емом до 50 килобайт, неформатированных текстов. Созда­ ваемые файлы имеют расширение .txt. Перечисленные скромные возможности определяют область применения программы как редактора для создания коротких записок, текстов управляющих и системных файлов. Отдельные части текста в Блокноте не форматируются, но имеется возможность отобразить весь текст в одном из перечислен­ ных шрифтов в меню Правка, Шрифт. Вертикальный раз­ мер шрифта (именно он понимается под размером шриф­ та) измеряется в пунктах, один пункт равен 1/72 дюйма — примерно 0,353 мм. Шрифт размером 10 пунктов, который называется десятым кеглем, часто используется в книгах. Четырнадцатым кеглем печатает пишущая машинка, и этот размер шрифта часто применяется при составлении различных документов. 3.4.2. ТЕКСТОВЫЙ РЕДАКТОР W 0R D PA D Дальнейшее развитие возможностей текстового редак­ тора получило в текстовом редакторе WordPad, также встро­ енном в операционную систему Windows. Его окно показа­ но на рис. 3.4. Кроме известной строки меню, еще введены: • две панели инструментов для быстрого доступа к час­ то используемым пунктам меню (одна называется стан­ дартная, другая — форматирование)', • линейка, позволяющая визуально устанавливать от­ ступы; • строка состояния, дающая дополнительную инфор­ мацию. На панелях инструментов собраны пиктограммы наи­ более часто встречающихся команд меню: создать, от­ крыть, сохранить, печатать, копировать и др. Любой 80 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ 13 flocjM ewr -W oidPad D w » -« , D la s lH j |йла1 ^ . Вма в И Вставка am Ы jrJ i t •2■. Дг»Я«*«<*14СПр-Ж «.м 3 ►i Фвеыаг .J . И И И Ш - ГШ Л leu si |Ю [Касылздл jJ 4j Ш £ iT » * .a '5*t 6 •' 7 - *| ■• 8 t-$ ж | я г| а [£ > | | T » 1ft » 1 1 - ; *|*| -=\ 1?- » 13- i -14 « ^ 1 5 - * 16 « 17- • • 1NUN .V Рис. 3.4 из элементов окна может быть установлен или удален с помощью соответствующих команд из меню Вид. Техни­ чески сохранение документа происходит аналогично Блок­ ноту. Созданный в WordPad текстовый документ может иметь одно из следующих расширений: .txt, .doc или .rtf. Редактирование. Все приемы созда­ ния, редактирования, сохранения текста, описанные в Блокноте, применимы и в Ю Ж WordPad. Но в WordPad предусмотрена возможность отмены последних действий нажатием кнопки на рисунке справа. Форматирование документа. WordPad допускает весь­ ма широкие возможности форматирования текста. Это форматирование шрифта, абзацев, маркированных спи­ сков, табуляции. Находятся они в командах меню Фор­ мат, и некоторые дублируются на панели инструментов «Форматирование». Форматирование шрифта позволяет форматировать весь текст (как в Блокноте), отдельные абзацы, слово и бу­ кву. Меню Формат, Шрифт или кнопки панели инстру­ ментов предоставляет диалоговое окно выбора гарнитуры и начертания шрифта, размера, атрибутов (зачеркнутый и подчеркнутый), цвета изображаемых букв. То же можно сделать, используя кнопки панели «Форматирование». Важно, что при этом соблюдается принцип эквивалентно­ сти экранного и печатного изображений. Говорят, что выполняется принцип W YSIW YG (What You See Is What You Get — что видишь (на экране), то и получишь (при печати на листе)). Форматирование абзаца дает возмож­ Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 81 ность установить абзацный отступ, он еще называется красной строкой, а также отступы справа и слева. От­ ступы проще и наглядней устанавливаются простым пере­ таскиванием маркеров на линейке (рис. 3.4). WordPad позволяет делать вставки рисунков, формул, звуковых и видеофайлов, таблиц Excel, презентаций Power Point и других объектов. Возможность эта основана на тех­ нологии внедрения и связывания объектов (OLE). 3.4.3. ТЕКСТОВЫЙ ПРОЦЕССОР WORD Текстовый процессор Word сейчас один из самых по­ пулярных программных продуктов в мире. Ранние версии (до W ord 5.0) работали под управлением операционной системы MS-DOS. Начиная с версии W ord 6.0 был вопло­ щен принцип эквивалентности экранного и печатного изо­ бражений W YSIW YG. Седьмая версия (она же — W ord 95) вышла уже в составе интегрированного пакета программ Microsoft Office офисного назначения, а восьмая версия (W ord 8.0, или 97) — в составе пакета Microsoft Office 97. Версия Word 9.0, или W ord 2000, входит в состав пакета Microsoft Office 2000. В ней расширены возможности рабо­ ты в сети, т. е. появились средства связи для специалистов, работающих в корпоративной компьютерной сети над одним проектом. Рабочее окно текстового процессора может содер­ жать довольно много панелей инструментов (см. рис. 3.5), в число которых так же, как и в WordPad, входят панели ин­ струментов форматирования и редактирования. Режимы отображения документов на экране. В меню Вид устанавливают режимы отображения документа: Обыч­ ный, Web-документ, Разметка страницы, Структура. Сле­ дует отметить, что только в режиме Разметка страницы в полной мере выполняется принцип WYSIWYG. Этот режим наиболее удобен для оформления текстового документа. Панели инструментов. Меню текстового процессора W ord обладает свойством функциональной полноты, т. е. любая команда может быть найдена в главном меню или одном из подменю. Но постоянное обращение к меню и под­ меню снижает эффективность работы пользователя. Ис­ правляет это положение наличие панелей инструментов. 82 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ |^ Документ?•MiciosoftWord RP1E3! 2айл Qpae*.s. gm Вегдвга Фе>с*чзт Сдоке Qrxe ф |||' 0 ' 6>ггЫ» gj fin»»NorВаюаг^ ||1? . ||й| К 3 i l 1 1 jr Cf Q » e? *^ *x Г » © <* -d. ran E3 и я s) if 5 ? - of* * * ■ - ftsi ■£ □ □. f-niin ftl N J a — 1 • 1 - 2*1 • 3 • 1 - 4-1 • * • 1 • 6 ■ « • 7 • « • 8 • 1 • t • 1 • 10 А L : Ш Ellз|с|m i 1 Действ*»- ^ G Aarwcfi**\ 4 □ О |flj И .. ГО. sir = В a? / . . 1С тр. 1 Р'азд I lii I He1.9» Ст 1 Коа1 ffl Ф •-Jj - & - SS H Ш|и . :уССКИЙ(РО г ■ т ■ ► J л Рис. 3.5 Меню Вид, Панели инструментов предоставляет возмож­ ность выбора необходимой по роду работ панели инстру­ ментов из раскрывающегося списка. Настраиваемые в W ord панели инструментов дают воз­ можность пользователю разместить на них в виде пикто­ грамм любые необходимые для выполняемой работы ко­ манды меню. Создание, сохранение и редактирование текста. Опи­ санные в Блокноте и WordPad средства ввода текста, работы с блоками, сохранения файла применимы и в Word. Кроме того, они пополнены рядом возможностей (средства автома­ тизации ввода, средства работы с формулами, диаграммами, графическими изображениями, рисунками и др.). Создание документа. В W ord любой документ созда­ ется на основе некоторого образца, называемого шабло­ ном. Шаблон — это именованная совокупность парамет­ ров (страниц, абзацев, шрифтов и др.) для создания доку­ мента, сохраняемая в библиотеке шаблонов. Например, при создании документа по умолчанию автоматически применяется шаблон Обычный, который предполагает: шрифт Times New Roman размером 12 пунктов, выравни­ вание абзацев слева, одинарный интервал между строка­ ми, запрет висячих строк. Но если создавать документ с Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 83 помощью меню Файл, Создать, то откроется диалоговое окно «Создание документа», представляющее библиоте­ ку шаблонов. Там хранятся шаблоны различных докумен­ тов, записок, отчетов, факсов, W eb-страниц и др. Причем отдельные виды шаблонов имеют значок с волшебной па­ лочкой — это Мастера. Документ создается так: вызыва­ ется шаблон, включается режим замены нажатием кла­ виши и по готовому тексту набирается новый, при этом все форматные заготовки заменяемой строки сохраняются. Процесс создания шаблона с помощью Мас­ тера еще проще: он задает ряд вопросов по существу со­ держания документа без форматирования, по завершении диалога выдается готовый документ. Дополнительные возможности ввода текста. Тексто­ вый процессор W ord создает удобства при создании доку­ мента на основе нескольких источников. Для этого Word (как и все приложения Windows) использует временную область памяти — Буфер обмена. В него можно поместить до 12 перемещаемых или копируемых фрагментов текста. Обмен данными можно производить между разными при­ ложениями Windows, и эти данные могут быть в тексто­ вом, графическом или смешанном виде. В значительной степени позволяют ускорить ввод тек­ ста команды Сервис, Автозамена и Вставка, Автотекст. С помощью автозамены можно создать сокращения для часто встречающихся в тексте слов и словосочетаний, рас­ шифровывать аббревиатуры или исправлять распростра­ ненные ошибки, например неверно набранное слово «очепятка» автоматически заменять на «опечатка», сокраще­ ние СУБД — на «система управления базой данных» и т. п. Автотекст позволяет быстро вставить в документ требуе­ мые объекты, которыми могут быть текст, таблица или рисунок. При работе с автотекстом можно пользоваться одним из трех средств: командой Вставка, Автотекст, па­ нелью Автотекст и вкладкой Автотекст окна «Автоза­ мена». Каждое из этих средств позволяет как создавать элемент автотекста, так и осуществлять его вставку. Форматирование текста. Форматирование текста в W ord выполняется с помощью меню Формат. Наиболее 84 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ часто используемые команды меню вынесены в панель ин­ струментов «Форматирование» в виде кнопок. Меню Фор­ мат содержит возможности выбора следующих парамет­ ров: шрифта, абзаца, заливки, списков, рамок, стиля и др. Диалоговое окно «Шрифт» имеет три вкладки: Шрифт, Ин­ тервал, Анимация. Вкладка Шрифт аналогична WordPad, но имеет значительно больше возможностей по видоизме­ нению шрифта. Вкладка Интервал имеет окна ввода Масштаб, Интер­ вал, Смещение. Масштаб указывает в процентах от неко­ торого нормального значения ширину шрифта, т. е. при одном вертикальном размере векторный шрифт (True Туре) может быть нормальным (100% ), широким (200% ) или узким (80% ). Интервал указывает на расстояние между символа­ ми в пунктах, он может быть обычный, разреженный (на 2 пункта в этом случае) или уплотненный (на 1 пункт). В диалоговом окне «Абзац» устанавливаются настройки параметров абзаца: величины отступов слева и справа аб­ заца, отступ красной строки, интервалы перед абзацем, после абзаца и междустрочный интервал. Создание списков. Для создания списка необходимо войти в меню Формат, Список, в котором указать, какой создается список: маркированный, нумерованный или многоуровневый. При выходе из меню автоматически по­ является выбранный маркер или первый номер списка. В дальнейшем при вводе очередного пункта списка и на­ жатии клавиши на следующей строке появляет­ ся маркер или очередной номер списка. Колонки. Текст в W ord может быть расположен в не­ скольких колонках. Команда меню Формат, Колонки (или кнопка на панели Стандартная) вызывает диалоговое окно, в котором можно выбрать количество колонок и задать ширину каждой. Разбивка на разделы. Параметры, страницы. W ord позволяет разбивать документ на два раздела и больше, если необходимо установить различные параметры форма­ тирования страницы (поля, размер бумаги, ориентацию страниц — книжную или альбомную) для разных разде­ Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 85 лов. По умолчанию эти виды форматирования применя­ ются ко всему документу. Поля страницы определяют пустое пространство между текстом и краями страницы. На каждой странице есть че­ тыре поля: левое, правое, верхнее и нижнее. Для установки точных размеров полей страницы (и ряда других парамет­ ров) применяют диалоговое окно «Параметры страницы». С помощью меню Вставка, Разрыв устанавливается символ разрыва, обозначающий место, с которого начина­ ется новый раздел в документе. Раздел, следующий за сим­ волом разрыва, может начинаться со следующей страни­ цы, а также со следующей четной или нечетной страницы. Стили служат для существенного повышения скоро­ сти оформления фрагментов текста. При необходимости оформления абзаца чаще всего пользуются готовым сти­ лем из списка в поле «Стиль». Если перечисленных сти­ лей недостаточно, можно обратиться в меню Формат, Стиль и создать новый стиль. Если стили оказались удачными, имеет смысл сохра­ нить их в виде шаблона. Тогда их можно использовать в других документах. Создать шаблон на основе готового документа можно при его сохранении в меню Файл, Со­ хранить как и в поле со списком «Тип файла» выбрать Шаблон документа. Создание формул. Текстовых! процессор W ord снабжен редактором формул Microsoft Equation 3.0, который позво­ ляет создавать формульные выражения и вставлять их в текст. Формульный редактор запускается командой Встав­ ка, Объект, Microsoft Equation 3.0. Привычный вид экрана меняется на меню редактора формул и панель инструмен­ тов «Формула». Настройка параметров стиля редактора формул выполняется командой меню Стиль, Определить, вызывающей диалоговое окно, в котором устанавливают­ ся форматные настройки (гарнитура, полужирный, кур­ сив) для текста, функций, символов, чисел и т. д. Для на­ бора формул используется панель инструментов «Форму­ ла» (см. рис. 3.6). Как видно, она имеет два ряда кнопок: верхний ряд — математические символы, нижний ряд — шаблоны формул. 86 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ *J Ф о р м у ла I1 а Ь Ч |i i i у 2 " ?S u Jo fa Cl tа / т т .* .V3 ID («) т |±.® fcnc 0 о о б Au j0 -* *«-= - J V 1* . V U » « О О О c ” e * • » » s o a Aft® Рис. 3.6 Шаблоны предоставляют поля ввода, в которые с клавиа­ туры набираются необходимый текст или символы. Создание таблицы. Для создания таблицы необходи­ мо установить курсор в место, где она будет находиться, зайти в меню Таблица и щелкнуть на строке Добавить таб­ лицу. Выбрать указателями размер таблицы, например 4 строки и 3 столбца. Там же даются указания по линей­ ным размерам ячеек, они могут задаваться вручную или автоматически — по умолчанию («А вто»). При этом ши­ рина столбцов будет установлена в зависимости от содер­ жимого ячеек. Редактирование и оформление таблицы. Чтобы редак­ тировать таблицу, необходимо прежде всего выделить одну или несколько подлежащих изменению ячеек, используя мышь или меню Таблица. Для изменения ширины столбца установим курсор мыши на линию разделения столбцов (при этом курсор примет вид двунаправленной стрелки) и пере­ тащим ее вместе с линией на нужное место. Аналогично можно менять высоту ячеек. Чтобы удалить строку, стол­ бец или отдельную ячейку, нужно их выделить и, щелкнув на соответствующей строке в меню Таблица, выполнить операцию. Объединить ячейки можно, выделив их, и в меню Таблица щелкнуть на строке «Объединить ячейки». Когда таблица создана, в нее можно добавить новые ячейки, за­ ливку, границы и другие элементы форматирования. Сортировка данных и вычисления в таблицах. В таб­ лице можно производить сортировку данных по одному или нескольким столбцам. Для этого надо выделить лю­ бую ячейку столбца, по которому нужно провести сорти­ ровку, выполнить команду Таблица, Сортировка и после ввода дополнительной информации нажать ОК. В таблицах можно суммировать, вычитать, усреднять и производить другие математические действия. Наибо­ Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 87 лее распространенное из них — это вычисление общей сум­ мы для данных столбца или строки, используя кнопку «Ав­ тосумма». Создание рисунка. W ord позволяет создавать собствен­ ные рисунки, рисованные иллюстрации и чертежи. Для работы с векторными рисунками и чертежами в W ord раз­ работан ряд инструментов, объединенных в панели инст­ рументов «Рисование», вызываемой командой Вид, Пане­ ли инструментов. Процесс создания векторного рисунка состоит из трех основных действий: вставки в документ рисованных объектов из набора «Автофигуры» (это линии, стрелки, фигуры), изменения в них толщины линий, цве­ та текста и формы, а также добавления надписи. Измене­ ния цвета линий, цвета заливки объекта осуществляется с помощью кнопки «Цвет линии» и «Цвет заливки» на па­ нели инструментов «Рисование». Для добавления надпи­ си надо щелкнуть на кнопке «Надпись», а затем в том мес­ те документа, где будет располагаться надпись, ввести текст в текстовом окне и завершить щелчком мышью в до­ кументе за пределами текстового окна. § 3 .5 . СОЗДАНИЕ ПРЕЗЕНТАЦИИ С ПОМОЩ ЬЮ POWER POINT Программа презентационной графики Power Point (РР) позволяет создавать слайды и прозрачные пленки для про­ ведения семинаров и конференций. В пакете РР содержит­ ся набор масштабируемых иллюстраций по различным те­ мам, а также библиотека элементов мультипликации. В пре­ зентации можно включать тексты, таблицы, диаграммы, математические формулы и фрагменты видеоклипов. В открытом приложении РР командой Файл, Создать вызовите окно «Создать презентацию», в котором перей­ дите на вкладку Общие и дважды щелкните по значку Н о­ вая презентация. Открывается диалоговое окно «Создать слайд» (см. рис. 3.7). Для большей выразительности каждому слайду в диа­ логовом окне «Создать слайд» назначают один из 24 ва­ риантов авторазметки, соответствующих самым популяр­ ным способам расположения объектов. 88 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Создать слайд \Ш ок Отмена Титульным слайд Рис. 3.7 Например, выделенный в левом верхнем углу образец служит для авторазметки слайда, представляющего ти­ тульный лист презентации. В верхний прямоугольник вво­ дится название презентации (доклада, сообщения и др.), а в нижний — название места и/или даты подготовки пре­ зентации. Для примера рассмотрим процедуры создания и фор­ мирования эффектов вывода трех слайдов презентации ДОКЛАД, а также ее демонстрации. 3.5.1. СОЗДАНИЕ СЛАЙДОВ ПРЕЗЕНТАЦИИ Процедура заполнения слайда информацией одинако­ ва для всех видов слайдов. Достаточно щелкнуть мышью в выбранной области и набрать свой текст или скопировать туда рисунок, диаграмму и пр. 1. Первый титульный слайд презентации ФИНАНСО­ ВЫЙ МЕНЕДЖМЕНТ создается на основе Титульного слайда. В диалоговом окне «Создание слайда» выберите тип авторазметки Титульный слайд, щелкните вначале на верхнем поле заголовка и введите текст ОСНОВЫ ФИНАНСОВОГО МЕНЕДЖМЕНТА Глава 3. ПРОГРАММНЫЕ СРЕДСТВА 89 затем щелкните на нижнем поле заголовка и введите текст ЛГТУ КАФЕДРА ИНФОРМАТИКИ 2. Второй слайд под названием МЕТОДИКА содержит маркированный список методов расчета финансовых по­ казателей. В окне приложения введите команду Вставка, Новый слайд. В диалоговом окне «Создать слайд» выберите тип авторазметки Маркированный список. Щелкните на верх­ нем поле заголовка и введите текст МЕТОДИКА РАСЧЕТА ФИНАНСОВЫХ ПОКАЗАТЕЛЕЙ Щелкните на нижнем поле и введите в рамку текст. 3. Третий слайд, называемый ДИАГРАММА, исполь­ зует средства построения диаграмм. При расчете финансовых показателей применя­ ются следующие методы: • нормативный; • расчетно-аналитический; • балансовый; • метод оптимизации плановых решений; • экономико-математическое моделирование. В окне приложения введите команду Вставка, Новый слайд. В диалоговом окне «Создать слайд» выберите тип авторазметки Диаграмма. Щелкните на поле заголовка и введите текст ПОРТФЕЛЬНЫЕ ИНВЕСТИЦИИ: АИ — активный инвестор; КИ — консервативный инвестор. Для создания диаграммы на нижней рамке сделайте двойной щелчок — появится образец таблицы данных. Переработайте таблицу данных так, чтобы она приобрела следующий вид: 90 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ А В Виды бум аг П ор тф ел ь АИ П о р тф е л ь КИ 1 Акции 65 20 2 Облигации 25 45 3 Ценные бумаги 10 35 4 Итого 100 100 Выполните команду Диаграмма, Тип диаграммы и в одноименном диалоговом окне выберите тип диаграммы Гистограмма. 3.5.2. ФОРМИРОВАНИЕ ЭФФЕКТОВ ВЫВОДА СЛАЙДОВ НА ЭКРАН Для наглядности показа каждый слайд можно сопрово­ дить специальными эффектами перехода. Например, мож­ но задать «растворение» изображения, когда прежний слайд исчезает постепенно, уступая место новому, или заставить новый слайд как бы выталкивать предыдущий и др. Раз­ личные виды эффектов перехода слайда формируются в диа­ логовом окне «Переход слайда» (рис. 3.8), которое откры­ вается по команде Показ слайдов, Переход слайдов. С его помощью можно задать в списке вид эффекта (Рас­ творение, Вертикальные жалюзи, Прямоугольник внутрь и др.), скорость его выполнения (медленно, средне, быст­ ро) и способ продвижения (по щелчку и автоматическое после нескольких секунд). Рассмотрим пример создания эффектов вывода первых двух слайдов на экран. Выполните команду Вид, Масштаб, на экране появит­ ся весь комплект созданных слайдов в уменьшенном виде. Выделите мышью первый слайд, выполните команду По­ каз слайдов, Переход слайда и в диалоговом окне устано­ вите следующие параметры: Эффект — жалюзи вертикаль­ ные, Скорость — медленная, Продвижение — по щелчку, после чего нажмите кнопку Применить. Аналогичным образом создайте эффекты для второго слайда, установив параметры: Эффект — жалюзи гори­ зонтальные, Скорость — медленная, Продвижение — по щелчку. 91 Глава 3. ПРОГРАММНЫЕ СРЕДСТВА Переход слайда г Эффект Применить ко всем Продвижение по щелчку Г автоматически после 1 секунд Рис. 3.8 3.5.3. ДЕМОНСТРАЦИЯ ПРЕЗЕНТАЦИИ Если одна и та же презентация демонстрируется раз­ ным аудиториям, то следует создать с помощью диалого­ вых окон произвольную демонстрацию слайдов. В ней мож­ но указать, какие слайды и в каком порядке использовать в каждом конкретном случае. Создайте произвольную демонстрацию слайдов для по­ каза выбранного набора из трех слайдов. Для этого выпол­ ните команду Показ слайдов, Произвольная демонстра­ ция и в появившемся диалоговом окне щелкните кнопку Создать. В поле «Демонстрация» введите имя демонстра­ ции — ДОКЛАД, а в список Слайды презентации — по­ очередно три слайда, которые затем попадают в список Слайды демонстрации. После щелчка на кнопке Пока­ зать переход к следующему слайду осуществляется нажа­ тием левой кнопки мыши. :l li: ii Ш: 1!: |I: 1: il li: ii 1i: ll: il: liii il: ii: :h T :h iil li li: T il: T il: li: ili HI T lii lii ' ГЛАВА ЧЕТВЕРТАЯ МОДЕЛИ РЕШЕНИЯ ФУНКЦИОНАЛЬНЫХ И ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ § 4 .1 . МОДЕЛИРОВАНИЕ КАК МЕТОД ПОЗНАНИЯ В любой сфере деятельности человек постоянно стал­ кивается с решением задач. Задачи, которые мы решаем, по своему назначению можно разделить на две категории: вычислительные задачи, целью которых является опре­ деление некоторой величины, и функциональные задачи, предназначенные для создания некоего устройства, выпол­ няющего определенные функции. 4.1.1. ПОНЯТИЕ ОБЪЕКТА И СИСТЕМЫ Под объектами понимаются предметы и явления, как доступные, так и не доступные чувственному восприятию человека, но оказывающие видимое влияние на другие объ­ екты (например, гравитация, инфразвук или электромаг­ нитные волны). Объектом может быть все, что угодно: дом, если разго­ вор ведется о доме; звезды, если мы смотрим на звездное небо; голод, если не ели долгое время. Система — это совокупность взаимодействующих эле­ ментов, выделенная в некоторой среде и обладающая спо­ собностью удовлетворять определенным потребностям и целям. Элементы системы — это ее функционально опреде­ ленные части, не подлежащие дальнейшему разбиению. Примером системы может служить вуз, элементами которого являются студенты, преподаватели, учебники, компьютеры, лабораторные установки и многое другое. 93 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ Система может состоять из вещественных элементов, преобразующих состав, массу и форму вещества; энерге­ тических элементов, вырабатывающих силовую и электри­ ческую энергию; информационных элементов, преобразую­ щих информацию в виде формул, знаков и символов. Взаимодействие между элементами бывает количест­ венным или качественным. В системе можно выделить некоторую часть — подсис­ тему, обладающую определенными признаками и недели­ мыми элементами. Например, пару «самолет-двигатель» можно охарак­ теризовать понятиями «система-подсистема» или «целоечасть» . Отметим важный принцип «системного эффекта», ко­ торый заключается в том, что при объединении элементов в систему у нее появляются новые свойства, которыми не обладал ни один из элементов в отдельности. Так, главным свойством самолета — способностью ле­ тать — не обладает ни одна из составляющих его частей (крылья, двигатель, шасси и т. д.). Объект, систему, подсистему или ее элемент можно представить в виде некоторого оператора Fa: У = F0(*)’ преобразующего входные переменные х = (д^, х 2, ..., х п) в выходные у = (г/х, г/2, ..., уп) (рис. 4.1). У, т Рис. 4.1 Одна часть входных переменных относится к неуправ­ ляемым (например, x lf х 2, ..., хт1), другая — к управляе­ мым (например, х т1+1, ..., х т2), изменяющим состояние объ­ екта, и оставшаяся — к случайным воздействиям окру­ жающей среды (например, х т2+1, ..., х т), представляющим шум и помеху. 94 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Так, на предприятии неуправляемыми переменными могут быть состав потребляемого сырья и температура воды, управляемыми — число рабочих, количество исполь­ зуемого сырья, электроэнергии и т. п., случайными воздей­ ствиями — перебои подачи сырья, электроэнергии, влия­ ние природных факторов (температуры воздуха и осадков), а выходными — объемы выпускаемых видов продукции. Система представляет собой «черный ящ ик», если из­ вестно, к каким результатам на выходе приведут опреде­ ленные воздействия на входе системы, и не известно, как она устроена «внутри», т. е. ее оператор F0. 4.1.2. МЕТОДЫ МОДЕЛИРОВАНИЯ И ТИПЫ МОДЕЛЕЙ Современные научные исследования во многих сферах человеческой деятельности довольно часто выполняются на основе различных методов и средств моделирования. Моделирование — это метод познания, исследования объ­ ектов и систем путем построения и изучения их моделей. Все многообразие методов моделирования можно услов­ но разделить на две группы: аналитическое и имитацион­ ное моделирование. Аналитическое моделирование заключается в построе­ нии модели, основанной на описании свойств или операто­ ра Faобъекта в виде аналитических выражений — формул. При таком моделировании объект описывается системой линейных или нелинейных алгебраических или дифферен­ циальных уравнений, решение которых аналитическими или приближенными численными методами может дать представление о свойствах объекта. Реализация числен­ ных методов обычно возлагается на вычислительные ма­ шины. Применение аналитического моделирования огра­ ничено сложностью получения и анализа выражений для больших систем. Имитационное моделирование предполагает построе­ ние модели объекта с неизвестными свойствами на основе информации о его входных и выходных переменных. Воз­ действия, поступающие на вход модели и объекта, долж­ ны вызывать одинаковые изменения выходов модели и Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ 95 объекта. Изменяя входные переменные и получая измене­ ния выходных переменных, можно проанализировать ха­ рактеристики объекта. Модель (от лат. modulus — образец) — это некий аналог, заменитель оригинала, отражающий существенные харак­ теристики исследуемого объекта, явления или процесса. Заменяя объект моделью, на ней можно провести необ­ ходимые исследования за минимальное время и без какихлибо потерь. Если результаты моделирования подтверждаются ре­ альными данными и могут служить основой для прогнози­ рования поведения исследуемых объектов, то говорят, что модель адекватна объекту. Степень адекватности зависит от цели и критериев моделирования. Все модели можно разбить на два класса: материаль­ ные и информационные. Материальные модели воспроизводят геометрические, физические, химические и другие свойства объектов в ма­ териальной форме (глобус, тренажер и др.). Информационная модель — это описание объекта в об­ разной или знаковой форме. Образные информационные модели (рисунки, схемы, фотографии и др.) представляют собой зрительные образы объектов, нанесенные на какой-либо носитель информа­ ции (бумага, фото- и кинопленка и др.). Образные инфор­ мационные модели широко используются в образовании — это учебные плакаты по различным дисциплинам. Знаковые информационные модели строятся с исполь­ зованием различных языков (знаковых систем). Знаковы­ ми информационными моделями являются тексты (напри­ мер, программа на языке программирования), формулы (например, второй закон Ньютона f = т ■а), таблицы (на­ пример, периодическая таблица элементов Д. И. Менде­ леева) и т. д. Информационные модели, описывающие объект на ес­ тественном языке, называются вербальными. Например, различного рода инструкции — это вербальные информа­ ционные модели поведения человека в тех или иных си­ туациях. 96 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Опишем кратко другие типы информационных моделей. Табличная информационная модель, или просто пря­ моугольная таблица, состоящая из строк и столбцов, при­ меняется для описания объектов, обладающих одинако­ выми наборами свойств. Иерархическая информационная модель характеризу­ ется распределением объектов по уровням. На первом уров­ не может находиться только один объект. Объект нижнего уровня может быть связан только с одним объектом более высокого уровня. Сетевая информационная модель применяется для описания систем со сложной структурой, в которой связи между объектами носят произвольный характер. Определим понятия формализации и формальных язы­ ков, используемые при построении формальных информа­ ционных моделей. Формализацией называется процесс построения инфор­ мационных моделей с привлечением формальных языков. К формальным языкам относятся: естественные язы­ ки, языки программирования и разделы математики: диф­ ференциальное и интегральное исчисление, теория мно­ жеств, алгебра логики и т. д. Теперь можно дать определение математической мо­ дели. Математическая модель представляет собой совокуп­ ность математических формул и логических выражений. Рассмотрим основные виды математических моделей. 4.1.3. КЛАССИФИКАЦИЯ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ В зависимости от характера изучаемых процессов в сис­ теме и цели моделирования существует множество типов моделей и способов их классификации, например по цели использования, методу получения результата, характеру воздействий на систему и отношению ко времени. По цели использования модели классифицируются как предназначенные для научного эксперимента, в к о­ тором осуществляется исследование модели с примене­ нием различных средств получения данных об объекте, или производственного эксперимента, использующего Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ 97 натурное испытание физического объекта для получения высокой достоверности о его характеристиках. По методу получения результата модели бывают анали­ тические и имитационные. Аналитическая модель форми­ руется на основе фундаментальных математических зави­ симостей и законов, описывающих определенные свойства объекта. Такими зависимостями могут быть алгебраические, дифференциальные и интегральные уравнения. Их реше­ ние с помощью численных или аналитических методов при заданных входных переменных позволяет предсказать, вы­ числить значения выходных переменных, характеризую­ щих выходные свойства объекта. Имитационная модель — это логико-математическое описание функционирования объекта в окружающей его среде. Отличие имитационной модели от аналитической за­ ключается в том, что она не позволяет заранее предсказать или рассчитать количественную оценку поведения объек­ та. Она формируется лишь после проведения значительно­ го числа опытов с имитационной моделью при заданных исходных данных, характеризующих объект. По характеру воздействий на систему модели делятся на детерминированные (в системах отсутствуют случай­ ные воздействия) и стохастические (в системах присут­ ствуют вероятностные воздействия). Детерминированные модели описывают системы, у которых наблюдается стро­ гое соответствие между входными и выходными перемен­ ными. При многократном задании одинаковых значений входа получаем каждый раз одинаковые значения выхо­ да. В стохастических системах при задании одинаковых значений входа можно получить разные значения выхода, что объясняется влиянием случайных воздействий. По отношению ко времени модели разделяют на ста­ тические, описывающие систему в определенный момент времени, и динамические, рассматривающие поведение сис­ темы во времени. В свою очередь, динамические модели под­ разделяют на дискретные, в которых все процессы проис­ ходят через определенные интервалы времени, и непрерыв­ ные, где все процессы происходят непрерывно во времени. 98 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ § 4 .2 . ТЕХНОЛОГИЯ МОДЕЛИРОВАНИЯ Технология моделирования, или процесс создания ма­ тематической модели, проходит следующие этапы. 1. Формулирование цели моделирования. Целью моде­ лирования может быть исследование, оптимизация свойств объекта или управление им. 2. Выделение существенных свойств и признаков объ­ екта с точки зрения моделирования. Обычно признаки объекта представляют в виде входных x lt х 2, ..., х ти вы­ ходных г/х, у2, ...,у ппеременных, изображенных на рис. 4.1. 3. Выбор формы представления математической мо­ дели. Математическую модель объекта можно записать в векторной форме ij = F (x ,c), (4-1) где F — оператор модели; х = ( х г, х 2, ..., л:т ) — вектор входных переменных; с = (cx, ..., cq) — вектор параметров модели; у = {у\>•••>*/,;) — рассчитанный по модели вектор выходных переменных. Выбор формы, или оператора F, математической моде­ ли зависит от решаемой задачи моделирования. Для моде­ лирования статических объектов используются линейные алгебраические уравнения Vi = сю + СцХ! + ... + cimxm; (4-2) и нелинейные уравнения т т У/=С/о+ Ус,,*, +•••> (4.3) ;=1 ;=1 гд ес.0,с.., c[j,c"j — коэффициенты (г = 1, ..., n ,j = 1, ..., т). Для моделирования динамических объектов исполь­ зуются линейные непрерывные дифференциальные урав­ нения = 1=0 (4.4) k=0 где с = (а0, а г, Ь0, Ь 8) — вектор коэффициентов; г, s — порядки производных; и линейные дискретные модели 99 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ Г S £ < = X a^ - i + Z 6***-*’ 1=1 к=О <4-5) записанные для одного входа и выхода, где с = (ах, ..., аг, Ь0, 6 , ..., 6s) — вектор коэффициентов; г, s > 1 — порядки разностей, а также временные ряды г = « о + Х а'^-<’ <4-6) (=1 где с = (а0, аг) — вектор коэффициентов временного ряда, г > 1. Как правило, на входные переменные накладываются ограничения в форме двусторонних неравенств: д . m in < J у. < д .m a x / / или линейных соотношений: £;0 ^/1^1 Cim^m —dj, j 1, •••, ТП, i 1, . ••, Д, где x fun, x]nax — минимальное и максимальное значения переменной х . 4. Выбор метода или алгоритма определения выхода модели у. Метод вычисления выхода в математической модели (4.1) определяется ее оператором F . Для нахожде­ ния решения линейных (4.2) и нелинейных (4.3) алгебраи­ ческих моделей применяются численные методы Гаусса и Ньютона. Линейные непрерывные (4.4) и дискретные (4.5), (4.6) динамические модели могут быть решены как анали­ тическими, так и численными (например, методом РунгеКутта) методами в зависимости от сложности вычислений. 5. Проверка адекватности модели заключается в ана­ лизе расхождения действительного у и расчетного у зна­ чений выхода. Модель считается адекватной и пригодной для использования, если ее ошибка е = у - у удовлетворя­ ет условию адекватности \е\< ед, (4.7) где ер — допустимая величина ошибки. В противном случае повторяются, начиная с п. 2, все перечисленные действия. 100 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ § 4 .3 . КЛАССИФИКАЦИЯ ЗАДАН, РЕШАЕМЫХ С ПОМОЩЬЮ МОДЕЛЕЙ Рассмотрим статические и динамические экономиче­ ские задачи, для решения которых требуются математи­ ческие модели (4 .2)-(4 .6). Начнем с наиболее популярной задачи распределения объемов выпуска различных видов продукции с точки зре­ ния максимизации прибыли. Пусть х., у = 1, ..., т, — объ­ емы выпуска у-го вида продукции. Пусть известна величи­ на прибыли а,, у = 1, ..., т, получаемая на единицу объема выпуска у-го вида продукции. Тогда целевая функция J, отражающая суммарную прибыль предприятия по всем видам продукции в зависимости от объемов выпуска х г, х 2, ..., х т, может быть записана как J(x) = ajX’j 4- а2х 2 + ... + атх т. (4.8) Пусть известны расход i-ro ресурса на единицу объема выпуска у-й продукции, т. е. параметры ci}, i = 1, ..., п, у = 1, ..., т, а также предельные значения соответствую­ щих ресурсов предприятия dx, d2, ..., dn. Тогда можно за­ писать систему ограничений: по 1-му ресурсу: c n x t + с12х 2 + ... + clmx m< d u по 2-му ресурсу: с21х 1 + с22х 2 + ... + с2тх т< d2, (4.9) по n-му ресурсу: сп1х х 4- сп2х 2 + ... + сптх т< dn. Таким образом, линейные соотношения, описывающие целевую функцию (4.8) и ограничения (4.9), составляют статическую модель задачи нахождения объемов выпуска продукции Xj, х 2, ..., х т, максимизирующих прибыль. Для решения поставленной задачи можно использовать извест­ ный симплекс-метод, реализованный в Excel. Наиболее известная задача экономики, для решения которой применяются динамические модели и, в частно­ сти, временные ряды (4.6), представляет собой прогнози­ рование. Суть задачи прогнозирования заключается в следую­ щем. Пусть точка t соответствует настоящему времени, Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ 101 a y f является последним наблюдаемым значением пере­ менной. Точки y t-i, у ,- 2 , y t-r Д° Vi соответствуют про­ шлым наблюдениям переменной у,, а точки после нее bt+ii bt+s— будущим, прогнозируемым. Напри­ мер, пусть в мае (время t - 1) реализация товара составля­ ет y t- X, в апреле у,_2 и в марте yf_3. Рассчитать прогноз реа­ лизации товара на июнь у,. Для целей прогнозирования yt можно использовать авторегрессионную модель третьего порядка yt - Со + CXyt_! + C2y t-2 + C3y t- 3, у которой коэф ф ициенты с 0, с г, с 2, с 3 определяю тся методом наименьших квадратов. § 4 .4 . ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ Идеи моделирования человеческого разума известны с древнейших времен. Впервые об этом упоминается в сочи­ нении «Великое искусство» философа и теолога Раймунда Луллия(ок. 1235-1315), который не только высказал идею логической машины для решения разнообразных задач, исходя из всеобщей классификации понятий, но и попы­ тался ее реализовать. Рене Декарт (1596-1650) и Готфрид Вильгельм Лейбниц (1646-1716) работали над созданием универсального языка классификации знаний. Толчком к дальнейшему развитию модели человеческого мышления стало появление в 40-х годах X X в. ЭВМ. В 1948 г. амери­ канский ученый Норберт Винер (1894-1964) сформулиро­ вал основные положения новой науки — кибернетики. В 1956 г. в Стенфордском университете (США) на семина­ ре под названием Artificial intelligence (Искусственный ин­ теллект), посвященном решению логических задач, было признано новое научное направление, связанное с машин­ ным моделированием человеческих интеллектуальных функций и названное искусственный интеллект. Под интеллектуальной системой понимается сово­ купность программ, имитирующих на компьютере элемен­ ты мышления человека, его способы рассуждения и реше­ ния задач. 102 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ При изучении интеллектуальных систем необходимо выяснить, что представляют собой знания и в чем их отли­ чие от данных. Знания — это выявленные закономерности предметной области (принципы, связи, законы), позволяющие решать задачи в этой области. Для хранения знаний используют базы знаний (БЗ). Обычно знания делят на декларативные и процедурные. Декларативные знания — это совокупность сведений о характеристиках свойств конкретных объектов, явлений или процессов, представленных в виде фактов и эвристик. Исторически такие знания накапливались в виде разнооб­ разных справочников, с появлением ЭВМ приобрели фор­ му баз данных. Декларативные знания часто называют просто данными, они хранятся в памяти информационной системы (ИС) так, что имеют непосредственный доступ для использования. Процедурные знания хранятся в памяти ИС в виде опи­ саний процедур, с помощью которых их можно получить. В виде процедурных знаний обычно описывают способы ре­ шения задач предметной области, различные инструкции, методики и т. п. Процедурные знания — это методы, алго­ ритмы, программы решения различных задач в выбранной предметной области, они составляют ядро базы знаний. Одной из наиболее важных проблем, характерных для систем искусственного интеллекта, является представле­ ние знаний. Для манипуляции различными знаниями ре­ ального мира на компьютере необходимо провести их мо­ делирование. Существует множество моделей представ­ ления знаний для различных предметных областей, но большинство из них относятся к следующим классам: ло­ гические модели, продукционные модели, семантические сети, фреймовые модели, которые в той или иной степе­ ни опираются на такие основные разделы логики, как ис­ числение высказываний и предикатов. В заключительной части раздела будут рассмотрены ней­ ронные сети и генетические алгоритмы, относящиеся к важ­ ному классу интеллектуальных систем и широко исполь­ зуемые для решения задач управления и прогнозирования. Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ 103 4.4.1. ИСЧИСЛЕНИЕ ВЫСКАЗЫВАНИЙ И ПРЕДИКАТОВ Высказывание — это простое предложение, имеющее вполне определенное значение истинности: Истина (Т) или Ложь (F). Буквы Т и F — это сокращения слов True (Истина) и False (Ложь). В математической логике высказывания обо­ значаются прописными латинскими буквами А, В, С, D, Р, Q, R, которые называются операндами. Например, вы­ сказывание «Москва — столица России (А)» является ис­ тинным (А = Т), а высказывание «Волга впадает в Черное море (В)» — ложным (В = F). В сложном предложении вы­ сказывания соединяются, как правило, связками. Среди них выделим следующие: И , ИЛИ, НЕ, ЕСЛИ... ТО. На­ пример, в предложении «ЕСЛИ пойдет дождь (А), ТО будет пасмурно (В) И сыро (С)» имеются две связки: И и ЕСЛИ... ТО. Если связки определяют истинность сложного предло­ жения в зависимости от истинности составляющих выска­ зываний, то эти связки называют логическими связками или логическими операциями. Рассмотрим основные ло­ гические операции конъюнкции, дизъюнкции, отрицания и импликации. Конъюнкция соответствует связке И и описывается выражениями А л В, А & В , А И В, А - В. Примером может служить высказывание, состоящее из двух операндов: «Закончились лекции (А) И студенты пошли домой (В)». Конъюнкция имеет истинное значение Т только тогда, когда истинны оба высказывания А и В, в остальных слу­ чаях она ложна, т. е. имеет значение F. Дизъюнкция отвечает связке ИЛИ и обозначается как A v В, А ИЛ И В, А + В. 104 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ П р и м е р 4 .1 . Рассмотрим высказывание, содержащее дизъюнкцию. Увеличение прибыли достигается за счет уве­ личения производства продукции (А) или снижения ее се­ бестоимости (В). Результатом дизъюнкции будет Ложь {F) лишь в том случае, если ложны оба высказывания А и В. При других значениях А к В дизъюнкция дает значение Истина (Т), т. е. происходит увеличение прибыли. Отрицание соответствует связке НЕ и имеет вид A, -iA , ~А, НЕ A, not А. Пример отрицания А: «падает снег (А )», «не падает сн е г (А )». Импликация отвечает связке ЕСЛИ... ТО и обознача­ ется как ЕСЛИ А, ТО В или А —» В, где А — предпосылка, В — заключение. Приведем пример импликации, выраженной предло­ жением: «ЕСЛИ число п делится на 4 (А), ТО оно делится на 2 (5 )». Признавая справедливость этого утверждения, следу­ ет считать истинными высказывания при таких значе­ ниях п: «ЕСЛИ 16 делится на 4 (А = Т), ТО 16 делится на 2 (В = Т)» = Т; «ЕСЛИ 18 не делится на 4 (А = F), ТО 18 делится на 2 (В = Т)» = Т; «ЕСЛИ 17 не делится на 4 (А = F), ТО 17 не делится на 2 (В = F )» = Т. Естественно, ложным высказыванием, которое нельзя получить ни при каком п, является: «ЕСЛИ п делится на 4 (А = Т), ТО п не делится на 2 (Б = F)» = F. 105 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ Таблица 4.1 А В А АлВ Aw В А^В Aw В Т т F Т Т Т Т т F F F F F F Т Т F т т Т Т F F Т F F т Т В терминах Т и F представим в табл. 4.1 значения ис­ тинности описанных выше логических операций, запишем законы логики и определим значение истинности логиче­ ского выражения. На основании таблицы истинности можно установить важное тождество ,, _ A -> B = A vB . (4Л0) Рассмотрим несколько основных законов логики: 1) коммутативность: A v В = В v А, А л В = В л А ; 2) ассоциативность: A v (5 v С) = (A v В) v С, А л (В л С) = (А а В) л С; 3) отрицание операнда: A a A -F , A 4 ) дистрибутивность: v А = Т, А = А, F = T; А л (Б v С) = (А л Б) v (А л С), A v (В а С) = (A v Б) л (A v С); 5) поглощение операнда: A v (A a B ) = A a (A v В )= А ; 6) отрицание формулы (законы де Моргана): А а В~ A v В, A vB =А а В. (4.11) Коммутативный закон, или коммутативность, означа­ ет, что операнды, связанные операциями конъюнкции или дизъюнкции, можно переставлять. Ассоциативность для указанных операций дает возможность произвольно рас­ ставить скобки или вообще их удалить. Законы отрицания 106 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ операнда или формул легко проверить, построив таблицу истинности. Первая форма дистрибутивного закона имеет арифметическую аналогию: А (В + С ) = А В + А С , если знак умнож ения • заменить на л, а знак сум м и­ рования 4 - на V . П р и м е р 4.2. На основании табл. 4.1 и законов логи­ ки определим значение истинности следующего логическо­ го выражения (формулы) при А = F и В = Т: ( А —>•B ) v A a B. Последовательность действий такова: а) находим истинность выражения (А —» В), заключен­ ного в скобки. Из табл. 4.1 следует, что при А = F и В = Т F^>T=T; б) определяем истинность операндов, связанных опе­ рацией конъюнкции, имеющей наивысший приоритет: АлВ. Согласно закону отрицания операнда: B = T = F. В соответствии с табл. 4.1 при А = F и В = F получаем F a F = F; в) определяем истинность итогового выражения. Дизъ­ юнкция значений истинности Т и F согласно табл. 4.1 дает окончательный результат: Т v F = Т. Перейдем к понятию предиката. Предикат Р (хх, х 2, ..., х„) — это логическая функция п переменных, которая в зависимости от значений пере­ менных х г, х 2, ..., х ппринимает два значения: Истина (Т) или Ложь (F ). Обычно такого рода предикат называют n-местным. Предикат Р(ах, а2, ..., а„), имеющий истинное значение и полученный при подстановке или конкретиза­ Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ 107 ции х х = ах, х 2 = а2, ..., х п = ап, где а,. — объекты или кон­ станты, называется фактом. Приведем примеры предикатов с различным числом аргументов. 1. Предикат нульместный, или простое высказывание: А — выключатель включен, В — вилка исправна. 2. Предикат одноместный: положителъный(х) — число х > 0, болъшой(у) — животное у большое. Эти предикаты становятся фактами при подстановке, например, х = 8 и у = медведь: положительный^ 8) = Т, большой(медведь) = Т. 3. Предикат двухместный, выражающий отношение: болъше(хх, ух) — число х х больше, чем у х, любит(х2, у 2 ) — животное х 2 любит пищу у2. Первый предикат приобретает значение Истина и яв­ ляется фактом при х х = 2, у г = Второй предикат может стать фактом при такой подстановке: х 2 = овца, у 2 = трава. Полученные факты имеют вид: болъше{2, 1), любит(овца, трава). Ложными предикаты болъше(х1, уг), любит(х2, у2) бу­ дут соответственно при Xj = 2, уг = 3 и х 2 = заяц, у2 = мясо. 4. Предикат трехместный: сумма(х, у, г) — г является суммой х и у. Очевидно, что при x = 2 ,y = 3 ,z = 5 значение этого пре­ диката истинное, получаем факт — сумма(2, 3 ,5 ), а при x = 5 , y = 7 , z = 3 — ложное. Для предикатов справедливы все ранее рассмотренные логические операции и законы логики. 108 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Рассмотрим процесс преобразования к предикатной форме предложения «ЕСЛИ Иван — отец Петра, И Петр — отец Павла, ТО Иван — дед Павла». Введем три двухместных предиката-факта: от дед(х, г)), в котором предикаты соединены логическими операциями л и —>. Здесь знак V называется квантором, означающим «для всех» (например, Ух — для всех х). 4.4.2. ЛОГИЧЕСКАЯ МОДЕЛЬ ЗНАНИЙ Логические модели знаний основаны на исчислении высказываний и предикатов. Элементарному высказыва­ нию соответствует операнд, а сложному — совокупность операндов, соединенных знаками логических операций. Для получения истинного высказывания из посылок или утверждений используются правила вывода modusponens, modus tollens и резолюции. Правило вывода modus ponens проиллюстрируем на примере истинного умозаключения: Посылка 1: ЕСЛИ у человека повышенная температура (А), ТО он болен (В). Посылка 2: У человека повышенная температура (А). Заключение: Человек болен (Б). Теперь сформулируем правило modus ponens. ЕСЛИ из А следует В (А —>В) И А — истинно, ТО и В будет истинным. Здесь А и В — некоторые высказывания. Приведем пример правила modus tollens. 109 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ Посылка 1: ЕСЛИ река выходит из берегов (А), ТО вода заливает прилегающие территории (Б). Посылка 2: Вода реки не залила прилегающие территории (В). Заключение: Река не вышла из берегов (А). Правило modus tollens имеет следующий вид: ЕСЛИ из А следует В (А —» В) и В — ложно, ТО и А будет ложным. Правило вывода, аналогичное modus ponens, справед­ ливо и для предикатов. Рассмотрим вывод, дающий заклю­ чение на основании двух посылок. Посылка 1: Все люди смертны. Посылка 2: Сократ — человек. (4.12) Заключение: Сократ смертен. В рамках логики высказываний сделать такое заключе­ ние невозможно, поэтому необходимо разделить элементар­ ные высказывания на более мелкие элементы. Так, предло­ жение «Сократ — человек» можно представить в виде пре­ диката человеках), у которого аргумент (имя) х = Сократ. Из предложения «Все люди смертны» вытекает другое частное высказывание «ЕСЛИ человек, ТО смертен», в котором определим два предиката человек(х) и смертен(х), характеризующих некоторого человека с именем х и образующих логическую форму человек(х) —> смертен(х). Предложение «Все люди смертны» можно записать в следующей логической форме: Vx (человек(х) —» смертен(х)). Тогда выражение (4.12) можно записать в виде логиче­ ской формулы: 110 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Посылка 1: \/х (человек(х) -> смертен(х)) Посылка 2: человек^Сократ) Заключение: смертен^Сократ). В математической логике вывод можно получить, ис­ пользуя правило резолюции, вытекающее из понятия сил­ логизма. Силлогизм — это дедуктивное умозаключение, в кото­ ром одно суждение является необходимым следствием двух других. Рассмотрим силлогизм, заключающийся в том, что из А —» В и В -» С вытекает А —» С. Примером такого силлогизма могут служить суждения: ЕСЛИ идет дождь (А), ТО дорога становится скользкой (В), ЕСЛИ дорога становится скользкой (В), ТО следует снизить скорость (С), из которых следует суждение ЕСЛИ идет дождь (А), ТО следует снизить скорость (С). Тогда силлогизм можно записать в следующей логиче­ ской форме: (А —» В) л (В —» С) Ь (А —» С), (4.13) где знак Ь означает следование. Если в выражении (4.13) логические формулы в круг­ лых скобках переписать в виде дизъюнктов (4.10): (A v В) л (В v С) Ь (A v С), (4.14) то получим следующее правило: в дизъюнктах, связанных конъюнкцией, удаляются одинаковые, но противопо­ ложные по значению операнды. Выражения (4.13)и (4.14) можно также записать в пре­ дикатных формах: Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ 111 Vx{A(x) —» В(х)} a \/х {В( х ) —> С(х)} Ь Vx{A(x) —> С(х)}, (4.15) Vx{A(x) v В(х)\ л Vx{B(x) v С(х)} h Vx{A(x) v С(х)}. (4.16) Здесь х — переменная, принимающая некоторое значение из предметной области. Перейдем к вопросам использования правила резолю­ ции для вывода заключения. Пусть имеется заключение Q(x) и набор дизъюнктов /^ (х ), D2(x), ..., /),„(х), которые в нашем случае равны Dy (х) = А (х) v В(х), D2(x) = В(х) vC(x). К выбранным парам дизъюнктовD ^ x ),..., D m(x) применя­ ют правило резолюции (4.14) или (4.16) до тех пор, пока не выведется Q(x), подтверждающее истинность заключения. П р и м е р 4 .3 . Решим простую задачу: «Если Ваня по­ всюду ходит за Петей, а Петя находится на речке, то где Ваня?». Введем двухместный предикат Н (х , у), означаю­ щий, что мальчик х (Ваня или Петя) находится на месте у (речка, сад, лес и др.). Эту задачу легко записать в преди­ катной форме: Уу{Н(Петя, у) -> Я(Ваня, у)}, /Г(Петя, речка). На вопрос «Где Ваня?» (заключение /Г(Ваня, у)) мож­ но дать ответ, если применить правило резолюции к факту //(П етя , речка) и дизъюнкту Н(Петя, у) v Н(Ваяя, у) для некоторого значения у. Построим процедуру опровержения и извлечем ответ на вопрос «Где Ваня?». Для этого запишем факт и дизъ­ юнкт: //(П етя , речка) (4.17) //(П етя , у) v //(Ваня, у). (4.18) Выведем факт //(В аня, речка) с помощью резолюции из выражений (4.17) и (4.18) при у = речка. Следовательно, получаем ответ: //(В аня, речка) — «Ваня находится на речке». 112 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Подстановка у = речка в предикаты формулы (4.18) называется унификацией. Преимущества логической модели знаний очевидны: это единственность и строгая обоснованность процедуры получения вывода. Однако в полной мере претворить в жизнь данный подход для решения реальных и достаточ­ но сложных задач не представляется возможным. Поэто­ му были предприняты попытки перейти от формальной логики к так называемой «человеческой» логике здравого смысла (к модальной, многозначной и нечеткой логикам). 4.4.3. ПРОДУКЦИОННАЯ МОДЕЛЬ ЗНАНИЙ Продукционная модель позволяет представить знания в виде совокупности правил П вида П: ЕСЛИ (Предпосылка), ТО (Заключение). Предпосылка (антецедент, предположение) — это объ­ единенная логическими операциями совокупность усло­ вий. Заключение (консеквент, следствие) — описание дей­ ствий, которые должны быть совершены при истинности антецедента. Продукционный вывод состоит в получении искомого значения на основе истинных предположений (фактов) и исходной информации. Различают два вида вывода: прямой и обратный. При прямом выводе осуществляется движение слева направо от предположений к требуемому заключению. Если путем сопоставления с фактами окажется истинной предпосылка, то истинным станет и заключение. Поясним суть прямого вывода на примере использова­ ния двух продукционных правил (продукций), составляю­ щих продукционную систему: П1: ЕСЛИ возраст ^ 18 (А) И образование среднее (-В), ТО продавцом (С), П2: ЕСЛИ стаж работы > 5 (D) И образование высшее (Е) И владеет компьютером (F), ТО менеджером (G). 113 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ В случае прямого вывода система должна ответить на вопрос претендента «Кем я могу работать? ». Например, она будет спрашивать, а претендент отвечать на следующие вопросы: Ответ Результат 1. Возраст более 18 лет? Да А = Т 2. Образование среднее? Да II В оп р ос В оп р ос О твет Результат 1. Ваш стаж работы превышает 5 лет? Да II 2. Вы имеете высшее образование? Да II 3. Владеете ли Вы компьютером? Да н Итак, в левой части первого правила предпосылка (А л В) является истинной, из чего следует истинное за­ ключение, что претендент может работать продавцом. При обратном выводе происходит движение от цели (заключения) к данным (предположениям) для ее подтвер­ ждения. Суть обратного вывода применительно к нашему при­ меру выражается вопросом претендента «Могу ли я рабо­ тать менеджером? ». Тем самым требуется подтвердить ис­ тинность заключения G во втором правиле. Тогда система задает вопросы, а претендент отвечает, например, следую­ щим образом: Поскольку все предположения (D ,E ,F ) истинны, следо­ вательно, истинна предпосылка во втором правиле (D а Е а F) и истинно заключение (G), т. е. претендент может работать менеджером. Такое же заключение можно получить, ис­ пользуя правило резолюции в логической системе, состоя­ щей из истинных предположений — фактов D, (4.19) E, (4.20) F (4.21) 114 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ и второго правила D л Е л F —> G —(D л Е д F )v G . (4.22) Применяя закон де Моргана к правилу (4.22), получим: D vEvFvG . (4.23) С помощью правила резолюции выведем: E v F v G из (4.19) и (4.23), (4.24) F v G из (4.20) и (4.24), (4.25) G из (4.21) и (4.25), что подтверждает истинность G. Наибольшее применение для реализации продукцион­ ных моделей получил язык логического программирова­ ния Пролог, использующий механизм обратного вывода на фактах и правилах. Главными достоинствами продукционных моделей яв­ ляются простота правил и процедур логического вывода. Основной недостаток подобных систем — трудность обес­ печения непротиворечивости правил при их большом чис­ ле. Кроме того, не всякое знание удобно представлять в виде правил. 4.4.4. СЕМАНТИЧЕСКИЕ СЕТИ Семантика — это наука, исследующая свойства зна­ ков и знаковых систем, их смысловую связь с реальными объектами. Семантическая сеть — это ориентированный граф, вершины которого есть понятия, а дуги — отноше­ ния между ними. Базовыми элементами семантической сети должны быть элементы двух типов: объекты, их признаки и значе­ ния, изображаемые прямоугольниками, а также отноше­ ния, изображаемые овалами и направленными стрелками. Например, знания, имеющиеся во фразе «ОАО ,,HJIMK“ находится в Липецке», формализуются так, как показано на рис. 4.2. 115 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ Рис. 4.2 Семантическую сеть на рис. 4.2 можно представить в виде двухместного предиката Находится^ОАО «НЛМК», Липецк). При графическом изображении двухместного пре­ диката, например предиката Находится^ОАО «НЛМК», Липецк), часто вместо овала имя предиката указывают на стрелке, как это сделано на рис. 4.3. ОАО «НЛМК» Находится Липецк Рис. 4.3 Усложняя семантическую сеть, формализуем знания из следующей фразы: «ОАО „НЛМК“ поставил для АО „Автоваз“ сталь 08Ю ». Графически эти знания можно изобразить в виде сети на рис. 4.4. Семантическая сеть на рис. 4.4 соответствует трехместному предикату Поставка(0АО «НЛМ К», АО «Автоваз», сталь 08Ю). Рис. 4.5 Построим семантическую сеть, формализующую зна­ ния о местонахождении АО «Автоваз» (рис. 4.5), и, исполь­ зуя аналогичные знания об ОАО «НЛМК» (рис. 4.2), допол­ ним ими семантическую сеть (см. рис. 4.6). Полученная на рис. 4.6 семантическая сеть содержит два двухместных пре­ диката Находится(•,•) и один трехместный предикат По­ ставка^-,■,). Теперь рассмотрим, как выполняется вывод на семантической сети на примере получения ответа на во­ прос «Где находится АО „Автоваз“ ? ». 116 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Указанный вопрос поставим в виде подсети (рис. 4.7) и начнем сопоставлять с подсетями семантической сети на рис. 4.6. Такая подсеть существует, и элемент «Где?» на рис. 4.7 замещается элементом «Тольятти» на рис. 4.3, т. е. получаем ответ на вопрос: «Тольятти». Аналогичным образом можно получить ответ на вопрос: «Где находится ОАО ,,НЛМК“ ? ». Основное достоинство семантической сети — это уни­ версальность и удобство представления как декларатив­ ных, так и процедурных знаний. Имеют место и два недос­ татка: • громоздкость и сложность построения и изменения большой сети; • потребность в значительном количестве и разнообра­ зии процедур обработки, связанная с различными ти­ пами дуг и вершин. 4.4.5. ФРЕЙМЫ Несмотря на большие возможности, семантическим сетям присущи неоднозначность представления знаний и неоднородность связей, что приводит к значительному ус­ ложнению программного обеспечения ЭВМ. Это обуслови­ ло появление особых типов семантических сетей: сцена­ риев, фреймов и т. п. Остановимся на фреймовых представ­ лениях знаний. Термин фрейм (от англ. frame — каркас, рамка) пред­ ложен для обозначения структуры единицы знаний, кото- 117 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ рую можно описать некоторой совокупностью понятий с целью ее пространственного восприятия. Фрейм имеет оп­ ределенную внутреннюю структуру, состоящую из сово­ купности элементов, называемых слотами. Каждый слот, в свою очередь, представляется определенной структурой данных, процедурой или может быть другим фреймом. Фреймовая модель представляет собой систематизирован­ ную в виде единой теории технологическую модель памя­ ти человека и его сознания. В отличие от других моделей, во фреймах фиксируется жесткая структура. В общем слу­ чае фрейм определяется следующим образом: {ИМЯ ФРЕЙМА: (имя 1-гослота: значение 1-го слота); (имя 2-го слота: значение 1-го слота); (и м яiV-roслота: значениеiV-roслота)}. Важным свойством фреймов является наследование свойств, заимствованное из теории семантических сетей. Наследование происходит по АКО-связям (от A Kind Of, что означает «это»). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются, т. е. переносятся, значения аналогичных слотов. Напри­ мер, в сети фреймов на рис. 4.8 «Конструктор» наследует свойства фреймов «Инженер» и «Человек», которые стоят на более высоком уровне иерархии. Человек Рис. 4.8 118 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Поэтому на вопрос «Может ли инженер мыслить?» от­ вет будет положительным, так как этим свойством облада­ ет вышестоящий фрейм «Человек». Если одно и то же свой­ ство указывается в нескольких связанных между собой фреймах, то приоритет отдается нижестоящему фрейму. Так, возраст фрейма «Инженер» не наследуется из выше­ стоящего фрейма «Человек». Основным преимуществом фреймов как модели пред­ ставления знаний является их способность отражать кон­ цептуальную основу организации памяти человека, а так­ же гибкость и наглядность. Фреймы имеют такие же недостатки, как и семантиче­ ские сети. 4.4.6. ПРЕДСТАВЛЕНИЕ НЕЧЕТКИХ ЗНАНИЙ Обычно для представления нечетких знаний использу­ ются словесные оценки, которые являются значениями лингвистической переменной. Примерами лингвистиче­ ской переменной могут служить переменные: • «возраст» со значениями: молодой, средний, старый; • «частота» со значениями: никогда, часто, очень часто, редко, очень редко, всегда; • «расстояние» с набором значений: близко, далеко, не­ далеко, не очень далеко, очень далеко. Пусть X — универсальное множество элементов х, о х ­ ватывающее всю предметную область. Нечеткое подмно­ жество (множество) Q множества X определяется через функцию принадлежности (ФП) |Hq(x), изменяющуюся в интервале [0, 1]. ФП показывает степень принадлежности элементов х множества X к нечеткому множеству Q. Если универсальное множество X состоит из конечного числа элементов x lt х 2, ..., х п, то нечеткое множество Q можно представить в следующем виде: Q= li Q ix J / x ! + n Q( x 2) / x 2 + ... 4- \xQ( x n) / x n. Например, пусть универсальным множеством будет множество людей в возрасте 0 -1 00 лет. ФП нечетких мно­ жеств, означающих возраст: «молодой», «средний», «ста- 119 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ Рис. 4.9 рый» можно определить так, как показано на рис. 4.9. За­ пишем нечеткие множества «молодой», «средний» и «ста­ рый» через каждые 10 лет: «молодой» = М-молодойС*)/х = 1 /0 + 1 /1 ° + 0 ,8 /2 0 + 0 ,3/30; «средний» = ИсреднийС*)/* = 0,5/30 + 1/40 + 0 ,5/50; «старый» = Цстарьш(х ) / х = 0,4/50 + 0 ,8 /6 0 + + 1 /7 0 + 1 /8 0 + 1/90 + 1/100. Лингвистические переменные используются при не­ четком выводе, математическая основа которого, именуе­ мая как теория нечетких множеств, была разработана американским ученым, выходцем из Советского Союза Л. А. Заде. Вывод, сделанный на недостаточных нечетких предпо­ ложениях, также называется нечетким. Приведем приме­ ры такого вывода: Я часто хож у гулять вечером, если нет дождя. К сожалению, в последнее время дожди идут очень часто. В последнее время я редко выхожу вечером гулять. Два высказывания, написанные над чертой, отражают посылки, на которых основывается вывод, находящийся под чертой. Здесь три слова «часто», «очень часто» и «ред­ ко» — словесные оценки, являющиеся значениями лин­ гвистической переменной «Частота». Формально нечеткий вывод можно представить схемой: 120 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ ЕСЛИ дождя (А) нет, ТО гулять вечером (В) часто. Дождь идет (А) очень часто. Гулять вечером (В) редко. Здесь нельзя применить традиционные в классической логике два значения «истина» или «лож ь». В нечетком выводе используются переменные, имеющие несколько (более двух) значений. Приведем еще один пример, в к о­ тором используется лингвистическая переменная «рас­ стояние»: Дом стоит недалеко от озера. Озеро примыкает к лесу. Дом находится не очень далеко от леса. Используемая здесь схема имеет вид: ЕСЛИ А недалеко от: В И В примыкает к С, ТО А не очень далеко от С. Важно подчеркнуть, что нечеткий вывод является недос­ товерным, а лишь правдоподобным. Люди могут соглашать­ ся с его схемами, которые также могут подтверждаться и не подтверждаться в тех или иных конкретных условиях. 4.4.7. ЭКСПЕРТНЫЕ СИСТЕМЫ Экспертные системы (ЭС) — это сложные программ­ ные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для консультаций менее квалифици­ рованных пользователей. К предметным областям относятся: медицина, фарма­ кология, химия, геология, экономика, юриспруденция и другие — в них большая часть знаний является личным опытом специалистов высокого уровня (экспертов). Эти области нуждаются в ЭС. ЭС определяется набором логически взаимосвязанных правил, аккумулирующих знания и опыт специалиста в данной предметной области, и механизмом решения, по­ зволяющим распознавать ситуацию, давать рекомендации к действию. 121 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ Решатель Интерфейс пользователя База знаний Подсистема разъяснений <=> И нте лл е ктуальный редактор базы знаний °£° Инженер по знаниям Эксперт Пользователь Рис. 4.10 На рис. 4.10 изображены основные компоненты моде­ ли ЭС: пользователь, интерфейс пользователя, решатель, база знаний (БЗ), подсистема разъяснений, интеллектуаль­ ный редактор БЗ, инженер по знаниям и эксперт. Пользователь является специалистом в данной пред­ метной области, квалификация которого уступает квали­ фикации эксперта. Интерфейс пользователя есть комплекс программ, реализующих диалог пользователя и ЭС при вводе запро­ сов на решение задач и получении результатов. Решатель, или подсистема логического вывода, пред­ ставляет собой программу, осуществляющую автоматиче­ ский вывод решения задач пользователя на основе знаний, хранящихся в БЗ. База знаний (БЗ) — совокупность знаний о предмет­ ной области, организованных в соответствии с принятой моделью представления данных. Подсистема разъяснений — это приложение, позво­ ляющее разъяснять, на основании чего ЭС дает рекомен­ дации, делает выводы, какие знания при этом использу­ ются. Интеллектуальный редактор БЗ — это приложение, предназначенное для ввода в БЗ новых знаний о предмет­ ной области. Инженер по знаниям — специалист по искусственному интеллекту, помогающий эксперту вводить знания в БЗ. Характерной особенностью любой ЭС является спо­ собность к саморазвитию. Исходные данные хранятся в базе знаний в виде фактов, между которыми установлены 122 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ определенные логические связи. Если при тестировании выявлены некорректные рекомендации или заключения по конкретным вопросам либо заключение не может быть сформулировано, это означает или отсутствие важных фак­ тов в ее базе, или нарушения в логической системе связей. 4.4.8. ИСКУССТВЕННЫЕ НЕЙРОННЫЕ СЕТИ Искусственные нейронные сети (ИНС) представляют собой вычислительные устройства, состоящие из множе­ ства взаимодействующих блоков обработки данных. Такие блоки принято называть нейронами. ИНС сформированы так же, как нейронные сети в биологических системах. Биологический нейрон — это одна клетка с каналами для ввода информации, называемыми дендритами, и канала­ ми для вывода информации — аксонами (рис. 4.11). Сигналы передаются через аксоны в том случае, когда клетка находится в возбужденном состоянии. Это состоя­ ние определяется комбинацией сигналов, полученных ден­ дритами клетки. Дендриты принимают сигналы от аксонов других клеток через небольшие промежутки, называемые синапсами, проводимость которых управляется их хими­ ческим составом. Обучение нейронной сети осуществляет­ ся за счет изменения проводимостей синапсов, которое при­ водит к увеличению или снижению тормозящих или воз­ буждающих действий входных сигналов на нейрон, при этом меняется его выход. Формальный нейрон (рис. 4.12) представляет собой вычислительный элемент, состоящий из сумматора и преобразователя. На два входа (синапса) сумматора поступают перемен­ ные Xj и х 2, которые умножаются на коэффициенты av а2, Рис. 4.11 123 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ именуемые весами. Далее с участием порога Т вычисляет­ ся сумма ахх х (XqXq Т. В преобразователе вычисляется значение выхода у по формуле y=kS, которая называется линейной активационной функцией. В результате получаем оператор статической модели: y = F (xx, x 2,c), где с = (ах, а , k, Т) — вектор настраиваемых параметров. Вычислим выход нейрона у при следующих значени­ ях входных переменных: х г = 2, х 2 = 1,5, весов а х = -0 ,5 , а2 = 4, порога Т = 3 и коэффициента k = 3. На выходе сумматора имеем: S = -0 ,5 -2 + 4 •1,5 - 3 = 2, а на выходе преобразователя — у = 3-2 = 6. Помимо линейной активационной функции, часто ис­ пользуется пороговая: J0, если S < 0, (1, если 5 > 0, и сигмоидная: у = 1/(1 + exp(-S)). 124 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ у = F 1(x,, хг> с 311 г/* 1 . 1 т-1 11С1 S S = а,х, + а2х2 - Т у 1 “ ik а2 ~ \ ® 3, 1 2 3. y=F ty,y min (max), (4.26) у которой вектор х = (х 1? х 2, ..., х т) имеет достаточно большую размерность. Рассмотрим работу ГА в задаче минимизации функции четырех переменных J (x x, х 2, x s, х 4) = (х г - 5)2 + + (х2 - 6)2 + (х г - 7)2 + (х4 - 8)2, минимум которой J = 0 достигается при х \ , = 5, х А 0 = 6, х„о = 7, ■г4 = 8. Зададим пределы изменения переменных: 1 < х. < 10 для всех j = 1, 2, 3, 4, и определим основные понятия ГА. Особь, или хромосома, Р' — это совокупность значе­ ний переменных, называемых генами, Р1=(X{,X 2 ,X g ,^ ), 126 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ i = О, 1, 2, п. Например, пусть нулевая особь Р° содер­ жит следующие значения генов: Р° = (х ° , х2° , х3° , х* ) = (1,1,1,1). Значение критерия J(P°) для нулевой особи Р° будет равно J(i*») = J ( l , l , l , 1) = ( 1 - 5 ) 2 + + (1 - 6)2 + (1 - 7)2 + (1 - 8)2 = 126. Популяция П = (Р 1,Р 2, содержит несколько осо­ бей Р 1, Р2, ..., Р", число которых п ограничим условием п<Ъ. Ген j характеризуется величиной Xj и положением j в особи. Можно случайно выбрать j -й ген: j = 1 + (m - 1) •Rnd, (4.27) и случайны м образом изменить его величину, т. е. мутироватьу-й ген: xj = x f n + (л-'1,ах - x f n) ■Rnd, (4-28) где т — номер последнего гена в особи ; л:‘11Ш,х]пах — нижний и верхний пределы изменения переменной х.; Rnd — генератор случайных чисел, вырабатывающий при каж дом обращ ении к нему число в интервале [0, 1]. Поскольку в нашем случае т = 4, л:'шп = 1,хутах =10 для всех j = 1, ..., 4, то при подстановке этих значений в формулы (4.27) и (4.28) получим: у = 1 + 3 •Rnd (4.29) Xj = 1 + 9 •Rnd. (4.30) и Для простоты изложения будем оперировать целочис­ ленными значениями j = 1, 2, 3, 4 и х{ = 1, 2, ...ДО. ГА со­ стоит из операторов создания исходной популяции, отбо­ ра, скрещивания, мутации и редукции. Исходная популяция П° = (Р1, Р 2, Р 3) состоит из трех особей Р 1, Р 2, Р 3, получаемых из нулевой особи Р°. Внача­ ле определим гены первой особи Р 1. Пусть при первом об­ ращении к формуле (4.29) найдено количество генов п = 2, 127 Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ подлежащих мутации. Выполняя п = 2 обращения к фор­ муле (4.29), определяем номера/j = 1, у2 = 3, также выпол­ няя п = 2 обращения к формуле (4.30), определяем зна­ чения = 5, JCg = 6 мутированных генов. Заменяя гены л:® = 1, х° = 1 в нулевой особи Р° на соответствующие мути­ рованные х} =5,x l =6, получаем первую особь: Р 1 = ( х 1, х 2 0 ,х1,х°4) = ( 5,1,6,1). Аналогичным образом, при п = 1 ,/ = 4 и х \ - 7 получаем вторую особь: P2 = (x °,x 0 2 ,x°3,x t ) = ( 1,1,1,7), а при п = 3; j 1 = 1, j 2 = 2, j 3 = 4 и x f = 2 ,лг| = 3 ,* f =4 — третью особь: Р* = (х?,х% ,х°,х1) = (2,3,1А). Оператор отбора вычисляет функцию J для каждой особи: JiP1) = (5 - 5)2 + (1 - 6)2 + (6 - 7)2 + (1 - 8)2 = 75, J(P 2) = (1 - 5)2 + (1 - 6)2 + (1 - 7)2 + (7 - 8)2 = 78, J(P 3) = (2 - 5)2 + (3 - 6)2 + (1 - 7)2 + (4 - 8)2 = 70, и выбирает две особи — родителей Р 1и Р3с минимальными значениями критериев J(P l) = 75,J (P 3) = 70. Оператор скрещивания передает потомкам свойства родителей. Вначале по формуле (4.29) определяется номер гена k = 2, после которого обмениваются местами подстро­ ки с образованием потомков — особей P i и Р °, наследую­ щих свойства родителей k =2 г ~ -“ л Р 1= (5, l,j 6, 1), I Р 4 =(5, 1, j 1, 4), I Р 3 = (2, 3,1 _1*_41*_1 Рг>= (2, 3,L6,_1)_-J Оператор мутации при выполнении условия Rnd < е, где 0 < £ < 1, по формуле (4.29) определяет номер Х = 2 ге­ нов, которые переставляются в потомках — особях Р 4 и Р5 с образованием мутированных потомков Р 4 и Р ° : 128 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Х=2 ГР4 =(5, ГГЛ1, 4), Р 4 =(5, ГзЛ1, 4), Потомки < в => _ [Р 5 = (2, L3,J 6, 1). ps = (2, L U 6, 1). Оператор редукции вычисляет значения критерия для потомков: J (P 4) = (5 - 5)2 + (3 - 6)2 + (1 - 7)2 + (4 - 8)2 =61, J (P 5) = ( 2 - 5 ) 2 + (1 -6 )2 + ( 6 - 7 ) 2 + (1 -8 )2 =84. Из пяти особей Р 1 = (5, 1, 6, 1), Р 2 = (1, 1, 1, 7), Р3 = = (2, 3, 1 ,4 ), Р 4 =(5,3,1,4), Р5 =(2,1,6,1) с критериями J (P X) = 75, J (P 2) = 78, J (P 3) = 70, J (P 4) = 61, J (P 5) = 84 вы­ бираются 3 особи P 1, P 3, P 4, имеющие минимальные зна­ чения критериев и образующие новую исходную популя­ цию Я ° = ( Р 1,Р 3,Р 4). Следует отметить, что значения критериев J{Pl) = 75, = {(1, 2, с12), (2, 3, с23), (3, 4, с34)}. Поиск оптимального в некотором смысле пути на графе осуществляется двумя способами: поиском в глубину (рис. 4.16а) и поиском в ширину (рис. 4.166). Порядок прохождения вершин показан номерами. По­ иск начинается от стартовой вершины 1 и достигает целе­ вых (черных кружков) и нецелевых (белых кружков) вер­ шин. При использовании каждого из способов могут быть найдены все решения. При переборе всего пространства оба метода анализируют одинаковое количество вершин, од­ нако метод поиска в ширину потребует существенно боль­ ше памяти, так как он запоминает все пути поиска (а не один, как при поиске в глубину). Рассмотрим некоторые задачи, представленные в виде графов. Рис. 4.16 130 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Рис. 4.17 Граф, изображенный на рис. 4.17, подходит для описа­ ния задачи поиска кратчайшего пути из вершины (точки) 0 к вершине (точке) 10. Величина сп, I, у = 0, 1, ..., 10, определяет длину пути из точки i в точку у. Задача о кратчайшем пути формулируется так: требу­ ется определить путь S = {(/, у, су)}, при котором достигает­ ся минимум критерия ю ю г=0/=0 (4.31) причем пары (i, у) принадлежат пути S. Например, путь S, отмеченный на рис. 4.17 жирными линиями, имеет следующее выражение критерия (4.31): Рис. 4.18 Граф на рис. 4.18 может быть ис­ пользован для описания задачи ком­ мивояжера, суть которой заключает­ ся в следующем. Коммивояжер (агент по сбыту) должен посетить каждый из семи городов (0, 1 ,..., 6) по одному разу, выехав из города 0 и вернувшись в него же. Расстояние между городом i и городом у равно су. Здесь также для оценки оптимальности пути подходит критерий (4.31). Глава 4. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ 131 В обоих случаях решение задачи — определение пути, минимизирующего критерий (4.31), — может быть найде­ но методами поиска в глубину и ширину. Приведенные выше переборные методы поиска реше­ ния задач большой размерности могут стать чрезмерно гро­ моздкими и требующими больших затрат машинного вре­ мени. В этом случае может оказаться полезным эвристи­ ческое программирование, или эвристика. Эвристика — это метод решения переборных задач, ос­ нованный на интуитивных соображениях и позволяющий сократить количество переборов в пространстве поиска. Например, при поиске в глубину (см. рис. 4.16а) из вер­ шины 3 необязательно возвращаться в вершину 1, нужно предварительно запомнить состояние в вершине 2, вернуть­ ся в нее и исследовать вершину 4. Аналогичным образом можно поступить с вершиной 7. ГЛАВА ПЯТАЯ АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ § 5 .1 . АЛГОРИТМИЗАЦИЯ Каждый из нас постоянно решает множество задач: как быстрее добраться на работу, как лучше спланиро­ вать дела текущего дня и многие другие. Решение каж­ дой задачи всегда делится на простые действия, состав­ ляющие алгоритм. Алгоритм — это любая последовательность действий, приводящая к решению поставленной задачи. Слово «алгоритм» появилось в Средние века, когда ев­ ропейцы познакомились со способами выполнения ариф­ метических действий в десятичной системе счисления, описанными узбекским математиком Мухаммедом бен Муса аль-Хорезми («аль-Хорезми» — человек из города Хорезми; в настоящее время город Хива в Хорезмской об­ ласти Узбекистана). Слово «алгоритм» есть результат ев­ ропейского произношения слов «аль-Хорезми». Алгоритм характеризуется следующими свойствами: дискретностью, массовостью, определенностью, результа­ тивностью. Дискретность — это свойство, означающее следую­ щее: каждый алгоритм состоит из отдельных законченных действий, т. е. «делится на шаги». Массовость — применимость алгоритма ко всем зада­ чам рассматриваемого типа при любых исходных данных. Определенность — свойство алгоритма, заключающее­ ся в строгом определении содержания и порядка выполне­ ния отдельных шагов. Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 133 Результативность — свойство, состоящее в том, что любой алгоритм должен находить решение за конечное число шагов. Существует несколько способов описания алгоритмов: словесное описание, блок-схема, алгоритмический язык и программа. Словесное описание представляет структуру алгорит­ ма на естественном языке. Например, любой прибор быто­ вой техники (утюг, электропила, дрель и т. п.) имеет инст­ рукцию по эксплуатации, т. е. словесное описание алго­ ритма, в соответствии с которым данный прибор должен использоваться. Запись алгоритма осуществляется в произвольной фор­ ме на естественном языке, например русском. Этот способ описания не имеет широкого распространения, так как строго не формализуем, допускает неоднозначность тол­ кования при описании некоторых действий, страдает мно­ гословностью. Блок-схема — описание структуры алгоритма с по­ мощью геометрических фигур с линиями-связями, по­ казывающими порядок выполнения отдельных инструк­ ций. Этот способ имеет ряд преимуществ. Благодаря на­ глядности он обеспечивает «читаемость» алгоритма и явно отображает порядок выполнения отдельных к о­ манд. В блок-схеме каждой формальной конструкции со­ ответствует определенная геометрическая фигура или связанная линиями совокупность фигур. К основным гео­ метрическим фигурам, используемым для построения блок-схем, относятся следующие. Блоки, характеризующие нача­ ло и конец алгоритма: Блок, отображающ ий процесс (оператор), предназначенный для описания отдельных действий: Блок, содержащий проверку ус­ ловия, или условный блок: 134 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Блок, описывающий цикл с пара метром: Блок ввода/вывода с произвольного носителя информации: г < / ^ ' т Ъ ~7 Описание алгоритма в словесной форме или в виде блоксхемы допускает некоторый произвол при изображении команд. Вместе с тем оно позволяет человеку легко понять суть дела и исполнить алгоритм. Алгоритмический язык, именуемый как псевдокод, — это запись алгоритмов, во многом напоминающая запись алгоритма на естественном языке и языке программиро­ вания. При описании алгоритма на псевдокоде использу­ ются следующие конструкции: нп — начало цикла; кц — конец цикла; для — цикл с параметром; если — условие; то — результат выполнения условия; иначе — результат невыполнения условия; всё — конец условия; пока — условие цикла. Рассмотрим примеры блок-схем трех основных видов ал­ горитмов: линейного, разветвляющегося и циклического. Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно. Блок-схема линейного алгоритма нахождения перимет­ ра прямоугольного треугольника Р при известных длинах его катетов а, b изображена на рис. 5.1. Разветвляющийся алгоритм — это такой '' алгоритм, в котором выбирается один из не/ Вводе ь / скольких возможных путей вычислительного ---- ^ — процесса. Каждый подобный путь называет­ ся ветвью алгоритма. Признаком разветвляюс ■«\а +Ь | щегося алгоритма является наличие условия. Различают неполное (если-т о) и полное а +b + с |....... (если-т о-иначе) виды ветвления. / Вывод Р У Неполное ветвление предполагает налиj чие оператора только на одной ветви (то; Да; (^Конец^ Истина), на другой ветви оператор отсутст­ вует и управление сразу переходит к точке Рис. 5.1 слияния (рис. 5.2а). Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 135 Рис. 5.2 Полное ветвление позволяет организовывать две вет­ ви в алгоритме ( т о или иначе; Да или Нет; Истина или Ложь), каждая из которых ведет к общей точке их слия­ ния (рис. 5.2б). В двух блок-схемах алгоритмов определения наимень­ шего числа min среди трех чисел а, Ь, с реализовано непол­ ное (рис. 5.3а) и полное (рис. 5.36) ветвление. б min := Ь ^Д а т > -— min := с Вывод min. Рис. 5.3 136 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ а Ввод а,Ь,с m i n :=а если bа)и(с>а) то m i n :=а иначе если (а>Ь)и(с>Ь) то min:=b иначе m i n :=с всё всё Вывод min Рис. 5.4 Им соответствуют программы на псевдокоде, показан­ ные на рис. 5.4. Основная идея алгоритма поиска наименьшего значе­ ния min среди трех чисел a, fc, с на рис. 5.3а сводится к следующему: за наименьшее min принимается одно из чи­ сел, например а, и осуществляется попарное сравнение всех чисел, сопровождающееся исключением наибольше­ го из каждой пары и завершающееся нахождением наи­ меньшего числа. Выбор минимального значения min в алгоритме на рис. 5.36осуществляется, исходя из соотношения а, если Ъ> а и с > а; min = \b> если а>Ъ и с>Ъ; с, в противном случае (5.1) Часто при выборе одного из операторов приходится проверять значение некоторого выражения на принад­ лежность к определенному интервалу или набору данных. Для этого существует алгоритмическая структура Выбор, пример которой приведен на рис. 5.5. Здесь в зависимо­ сти от целочисленного значения времени Т выводится одно из сообщений: «Доброе утро» (5 < Т < 11), «Добрый день» (12 < Т < 16), «Добрый вечер» (17 < Т < 21) и «Доб­ рой ночи» (в оставшееся время — от 22 до 4). Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 137 Рис. 5.5 Циклическим, или просто циклом, называют такой алгоритм, в котором получение результата обеспечива­ ется многократным выполнением одних и тех же опера­ ций. Группа повторяющихся операций называется телом цикла. Широкое применение получили три типа циклов: цикл с параметром, цикл с предусловием и цикл с постуслови­ ем, блок-схемы которых приведены на рис. 5.6. Параметр i цикла с параметром на рис. 5.6а изменя­ ется от п до к с шагом h следующим образом: на первом шаге i = п; на втором шаге i = п + h; на третьем шаге i = п + 2h; на последнем шаге i = k. Рис. 5.6 138 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Цикл с параметром используется в тех случаях, когда известна величина k, т. е. количество элементов или ша­ гов цикла. Количество шагов цикла с предусловием (см. рис. 5.6б) заранее не определено. В нем сначала проверяется выпол­ нение условия. Если оно Истинно (Да), то исполняется тело цикла, после чего вновь проверяется условие. Ука­ занные действия проверяются до тех пор, пока условие не примет значение Ложно (Нет). Цикл с постусловием (см. рис. 5.6в) отличается от цик­ ла с предусловием расположением условия и тем, что тело цикла всегда будет выполнено хотя бы один раз. Тело это­ го цикла будет выполняться, пока условие Ложно (Нет). Цикл с параметром можно применить в задаче вычис­ ления суммы S элементов 1, 1 /2, 1 /3 , ..., 1 /N до заданно­ го числа N. Алгоритм решения данной задачи представ­ лен блок-схемой на рис. 5.7а и программой на псевдоко­ де (рис. 5.76). На рис. 5.7а не указана величина шага, поскольку она равна 1. Если видоизменить предыдущую задачу, а именно оп­ ределить количество элементов i суммы 5 = 1 4 -1 /2 + 1/3 + + ... + 1/i, величина которой должна быть не меньше за­ данной Бг, то потребуются циклы с предусловием или по6 а Ввод N i S : =0 I S : =0 нц д л я i от S:=S+l/i кц i Вывод S Рис. 5.7 1 до N Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 139 Рис. 5.8 стусловием, содержащиеся в блок-схемах на рис. 5.8а и рис. 5.8б соответственно. Ниже приводятся программы на псевдокоде, реализую­ щие решение задачи и содержащие циклы с предусловием (рис. 5.9а) и постусловием (рис. 5.96). Для повышения производительности и качества рабо­ ты каждый язык программирования имеет структуриро­ ванный тип данных — массив. Массивом называется упорядоченная совокупность однотипных величин, имеющих общее имя, элементы ко­ торой различаются порядковыми номерами, именуемыми индексами. б Ввод Sz S :=0 i :=0 нц пока SSZ Вывод i Рис. 5.9 140 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ В качестве иллюстрации можно представить множе­ ство пронумерованных ящиков (совокупность — «Ящик № 1», «Ящик № 2», «Ящ ик № 3» и т. д.; «Ящ ик» — об­ щее имя всех ее элементов). Доступ к конкретному ящи­ ку (элементу массива) осуществляется после выбора ящи­ ка по его номеру (индексу). Элементы массива в памяти компьютера хранятся по соседству. Массивы различают­ ся количеством индексов, определяющих их элементы. Одномерный массив (множество ящиков в один ряд) предполагает, что каждый его элемент имеет только один индекс. Количество элементов массива называют размер­ ностью. При определении одномерного массива его раз­ мерность записывается в круглых скобках, рядом с его именем. Например, если сказано: «задан массив а(5)», это означает, что даны элементы ах, а2, ..., а5. Рассмотрим ал­ горитмы обработки элементов одномерных массивов. Нач­ нем с алгоритма ввода элементов массива а(5) в порядке возрастания их индексов (рис. 5.10а). В двумерном массиве а(п, т) (множество ящиков, рас­ положенных по горизонтали и по вертикали) каждый эле­ мент а, имеет два индекса: первый индекс i определяет но­ мер строки, в которой находится элемент (координата по горизонтали), а второй j — номер столбца (координата по вертикали): (^)ачало^) л К / " /=1,5 V —<(0=1,10 ' - ’ ■5 > 1 f 1 Ввод а, / 1 / Рис. 5.10 Ввод 141 Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ _ \ аи а 12 • • а 1j • а 1т а 21 #22 • • CL2j . • а 2т аа a i2 a ij a im ^а п1 а п2 “ п; &пт j Двумерный массив характеризуется двумя размерностями п и т , определяющ ими число строк и столбцов соот­ ветственно. Ввод элементов двумерного массива осуществляется построчно, в свою очередь ввод каждой строки произво­ дится поэлементно, тем самым определяется циклическая конструкция, реализующая вложение циклов. Внешний цикл определяет номер вводимой строки (г), внутренний — номер элемента по столбцу (у). На рис. 5.106 представлен алгоритм ввода матрицы а(5, 10). На рис. 5.11 приводятся программы на псевдокоде, осу­ ществляющие ввод элементов одномерного а(5) (рис. 5.11а) и двумерного а(5, 10) (рис. 5.116) массивов. Завершим изучение процедур обработки элементов массивов алгоритмами вычисления сумм положитель­ ных Sp и отрицательных Sn элементов а;, г = 1 ,2 , ..., 5, (см. рис. 5.12а) одномерного массива а(5) и элементов а;), i — 1, 2, ..., 5, j = 1, 2, ..., 10, двумерного массива а (5, 10) (рис. 5.126), а также соответствую щ ими про­ граммами на псевдокоде, изображенными на рис. 5.13. б нц для i от 1 до 5 Ввод кц нц для i от 1 до 5 нц для j от 1 до 10 Ввод a i : КЦ КЦ Рис. 5.11 1 J 142 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Рис. Sp:=0 SM:=0 нц для i от 1 до 5 Ввод а± если а±>0 то Sp:=Sp+a± иначе SN:=SN+а± всё кц i Вывод Sp, SN Sp:=0 SN:=0 нц для i от 1 до 5 нц для j от 1 до 10 Ввод a±j если a±j>0 то Sp:=Sp+ai;j иначе SN:=SN+ai:j всё кц j кц i Вывод Sp, SN Рис. 5.13 143 Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ Сочетание циклов с параметром и постусловием мож­ но продемонстрировать на примере сортировки элементов одномерного массива ах, а2, а5методом «пузырька». При прохождении массива ах, а2, ..., а5 от начала до конца сравниваются пары соседних чисел а, и а,ч1, i = 1 ,2, 3 ,4 . Если очередная пара удовлетворяет условию а1> а;+1, т. е. нарушается порядок возрастания, то элементы а, и а;+1 меняются местами. Действия повторяются до тех пор, пока очередной проход не вызовет ни одной перестановки. В ре­ зультате все элементы будут располагаться в порядке воз­ растания. На рис. 5.14а приводитб ся программа на псевдокоде, а на рис. 5.146 — блок-схема алгоритма сортировки мето­ дом «пузырька». Ввод а 1 Ind нц для i от 1 до 5 Ввод a.L кц i нц Ind=l нц для i от 1 до 4 если as>a<+1 то b:=a± a i : = a ±+i ai+i:=b lnd=0 всё кц i кц пока Ind=0 нц для i от 1 Вывод а± кц i ДО 5 Вывод а} Рис. 5.14 144 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Здесь используется параметр Ind, равный 1, если мас­ сив отсортирован, и равный 0, если произошла перестанов­ ка соседних элементов. Операция перестановки элементов а, и а,+1 с помощью промежуточного элемента b содержит 3 оператора — b := а,; а, := а,Ч1; ам := Ь. На практике исполнителями алгоритмов являются компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «по­ нятном» ему языке, такой формализованный язык назы­ вают языком программирования. § 5 .2 . ЭВОЛЮЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Языки программирования являются искусственными языками со строго определенными синтаксисом и семан­ тикой. Синтаксис — это набор правил, которые определяют основные внутренние структуры и последовательности символов, допустимых в языке программирования. Семантика — это значения языковых единиц (слов и предложений). Составление программ для ЭВМ первого поколения ве­ лось на машинном языке, который представляет собой свод правил кодирования действий ЭВМ с помощью двоичных чисел. Более высоким уровнем по сравнению с машинными языками являются машинно-ориентированные языки символического кодирования. Основной принцип при со­ здании языков символического кодирования состоит в за­ мене машинных кодов на их буквенные обозначения. Та­ кой машинно-ориентированный язык получил название языка Ассемблера (расширение .asm). ЭВМ «понимает» только машинный язык, только команды, операнды и ад­ реса, записанные с помощью двоичных чисел. Поэтому для преобразования программы, написанной на языке Ассемб­ лера, в машинные коды необходим транслятор (перевод­ чик) — специальная программа, которая имеет созвучное название: ассемблер. Недостатком машинно-ориентированных языков является их зависимость от типа машины. Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 145 На следующем уровне развития языков находятся про­ цедурно-ориентированные языки. В отличие от машинно­ ориентированных языков, синтаксис и семантика этих языков не зависят от типа конкретной ЭВМ (конкретного процессора). Привязку составленной программы к кон­ кретному типу ЭВМ осуществляет транслятор (программа-переводчик). Запись программы на процедурно-ориентированном языке достаточно близка к общепринятой математической записи, компактна и удобна для воспри­ ятия. Рассмотрим, как выглядит операция суммирования двух чисел, например 7 и 5, запрограммированная на раз­ личных языках. 1) на машинном языке: Адрес Команда 1101 0001 0011 1111 1101 0010 0000 0101 1101 ООН 0000 0110 1101 0100 0000 0111 1101 0101 1000 0000 2) на машинно-ориентированном языке (микропроцес­ сорный комплект 580-й серии): MVI А, 5 MVI В, 7 ADD В; 3) на процедурно-ориентированном языке: А = 7 + 5. Из приведенных примеров видно, что наиболее проста для понимания последняя запись. Одним из первых процедурно-ориентированных языков стал язык Фортран (FORTRAN, FORmula TRANslation — преобразование формул), созданный в начале 1950-х гг. в США фирмой IBM. Он не только просуществовал до на­ ших дней, но продолжает развиваться и удерживает одно из первых мест в мире по распространенности. Среди при­ чин такого долголетия можно отметить простую структу­ ру Фортрана. Он используется в научных и инженерно-технических вычислениях. Фортран положен в основу диалогового языка Бейсик (BASIC — Beginners All-Purpose Symbolic Instruction Code). BASIC переводится так: многоцелевой язык символических 146 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ команд для начинающих. Вначале он предназначался в основном для обучения программированию. Современные версии языка BASIC (расширение .bas) позволяют решать задачи на профессиональном уровне. В 1960-х гг. появился Алгол-60 (ALGOL, ALGOritmic Language — алгоритмический язык) — это более совершен­ ный язык, чем Фортран. Он обладает большей гибкостью и надежностью программ. В 1971 г. Н. Виртом для обучения программированию был разработан язык Паскаль (PASCAL), который явля­ ется преемником Алгола-60. Он имеет конструкции, ана­ логичные существующим в Алголе-60, однако более ла­ коничен. В Паскале проводятся идеи структурного про­ граммирования. Благодаря хорошей структурированности программ, написанных на языке Паскаль, над разработ­ кой сложных проектов могут одновременно работать не­ сколько программистов. Программы, написанные на Пас­ кале, имеют расширение .pas. Языки Пролог и Лисп были созданы для решения за­ дач искусственного интеллекта. Эти языки позволяют об­ рабатывать текстовую (символьную) информацию, решать логические и математические задачи. Язык Пролог (PROLOG, PROgraming in LOGic — про­ граммирование в логике), созданный в 1973 г. французским ученым А. Кольмероэ, является непроцедурным языком ло­ гического программирования. Программа на языке Пролог (расширение .pro), опирающемся на теорию исчисления пре­ дикатов, строится из последовательности фактов и правил, затем формируется цель, которую Пролог пытается доказать (опровергнуть) с помощью механизма обратного вывода. Он выбран основным языком при разработке ЭВМ пятого поко­ ления, которые будут обладать искусственным интеллектом. Язык функционального программирования Лисп (LISP, LISt Processing — обработка списков), разработанный в 1959 г. Д. Маккарти, ориентирован на работу со структу­ рой данных в форме списка. Лисп позволяет эффективно обрабатывать большие объемы текстовой информации и обладает единообразием программных структур и струк­ тур данных: все они записываются в виде списков. Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 147 Перспективным направлением дальнейшего развития технологии программирования явилось создание объектно-ориентированных языков. Объекты представляют со­ бой многократно используемые программные модули. Структурно объекты состоят из двух частей: методов и пе­ ременных. Методы представляют собой набор процедур и функций, определяющих алгоритм работы объекта. Пере­ менные могут содержать как простые данные (числа, мас­ сивы, текст и т. д.), так и информацию сложной структу­ ры (графика, звуки и т. д.). Однотипные объекты объеди­ няются в классы. Объектно-ориентированное программирование (ООП) характеризуется тремя признаками: инкапсуляцией, на­ следованием и полиморфизмом. С помощью инкапсуляции данные одного объекта мо­ гут быть защищены от других объектов. С помощью меха­ низма наследования дочерний класс способен унаследовать от своего родительского класса все его методы и данные, причем потомок может унаследовать способности и от не­ скольких родителей. Полиморфизм — это присвоение еди­ ного имени процедуре, которая передается по иерархии объектов, с выполнением этой процедуры способом, соот­ ветствующим каждому объекту в иерархии. Первый объектно-ориентированный язык программи­ рования Simula 67 был разработан в конце 1960-х гг. для решения задач моделирования. В настоящее время широ­ ко используются такие объектно-ориентированные языки, как C++, Delphi, Java, Visual Basic. Язык Visual Basic ин­ тегрирован в M icrosoft Office: СУБД Access, электронные таблицы Excel, текстовый редактор W ord. Язык гипертекстовой разметки HTM L (HyperText Markup Language) был предложен Тимом Бернерсом-Ли в 1989 г. в качестве одного из компонентов технологии раз­ работки распределенной гипертекстовой системы W orld W ide Web (W W W ). Язык HTM L (расширения .htm, .html) позволяет опи­ сывать структуру электронного документа с полиграфиче­ ским уровнем оформления. В основу гипертекстовой раз­ метки была положена тэговая модель описания документа, 148 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ позволяющая представить документ в виде совокупности элементов, каждый из которых окружен тэгами. Тэги — это скобки, между которыми записан текст программы. Таким образом, гипертекстовая база данных в концепции W W W — это набор текстовых файлов, размеченных на языке HTML. Для работы с W eb-страницами были также разработа­ ны интерпретируемые языки сценариев Perl, Java Script и VB Script. Язык Perl (Practical Extraction and Report Language), созданный JI. Уоллом, переводится как язык для практи­ ческого извлечения данных и составления отчетов. С по­ мощью Perl, например, можно создавать скрипт, который открывает один или несколько файлов, обрабатывает ин­ формацию и записывает результаты. Аналогичные дейст­ вия могут выполнить программы на языках JavaScript и VB Script, созданных на основе языков Java и Visual Basic соответственно. § 5 .3 . ПРОГРАММИРОВАНИЕ НА BASIC BASIC — это один из самых простых языков програм­ мирования, успешно используемый для целей обучения и решения научно-технических и экономических задач. Предлагаемая версия языка применяется во всех прило­ жениях MS и Open O ffice. В данном разделе рассматрива­ ются основные элементы языка (переменные, константы, операции, операторы управления и циклы) и простые приемы традиционного программирования на BASIC. 5.3.1. ПЕРЕМЕННЫЕ И КОНСТАНТЫ Переменная — это именованная область памяти, отве­ денная для хранения данных. Тип данных задает опреде­ ленную форму или размер содержимого переменной. Опе­ ратор, определяющий с помощью ключевых слов Dim и As тип данных или переменной, имеет следующий синтаксис: Dim имя переменной As тип данных Имя переменной можно выбрать произвольное, соблю­ дая следующие правила: Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 149 • имя переменной должно начинаться с буквы; • максимальная длина имени — 255 символов; • имена могут содержать только буквы, цифры и символ подчеркивания; • имя не может быть зарезервированным в BASIC сло­ вом (например, Type, Print и т. д.). BASIC поддерживает следующие основные типы дан­ ных. Данные типа Boolean могут принимать значения True или False, которым соответствуют числа 1 или 0. Данные типа Integer, Long содержат целые числа: • Integer о т -3 2 768 д о +32 767; • Long от - 2 147483 648 до + 2147483 647. Данные типа Single, Double и Currency содержат числа с плавающей запятой. При этом переменная Single оперирует с числами до 3,4-1032, a Double — с числами до 1,8-10308. Данные типа Currency предназначены для вы­ полнения финансовых расчетов и содержат 15 знаков до запятой и 4 — после. Данные типа String служат для хранения строк, со­ держащих до 2-1032символов. Чтобы BASIC отличал стро­ ку от имени переменной, строка заключается в кавычки: Dim Переменная As String Переменная = "Hello" Тип данных Variant либо объявляется, либо устанав­ ливается по умолчанию в зависимости от содержимого пе­ ременной. Если ее содержимое целое число, то она принимает тип Integer, если целое число с десятичной дробью — Double; если текст, то String. Во время выполнения программы переменная типа Variant может менять свой тип, что при­ водит к двум проблемам. Во-первых, при чтении кода не видно, какой тип имеет переменная в данный момент, что сильно затрудняет обна­ ружение логических ошибок программирования. Во-вторых, данные этого типа из-за частых внутрен­ них преобразований занимают гораздо больше памяти, чем аналогичные данные, объявленные с указанием типа. 150 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Для хранения большого объема данных одного типа применяются одномерные и многомерные массивы. При­ ведем пример объявления одномерного массива: Dim Emp(10) As String для хранения 11 элементов, и объявления двумерного массива: Dim L o c (20,25) As Integer описывающего матрицу с 21x26 элементами. Константы — это элементы, не меняющие свои зна­ чения во время выполнения программы. Приведем при­ мер описания константы: Const NV As Integer = 1 Описание состоит из ключевого слова Const, за кото­ рым следует имя константы NV, тип Integer и значение 1, присваиваемое константе. 5.3.2. О П Е Р А Т О Р Ы И О П Е Р А Ц И И Строка с кодом в исходном тексте программы на BA­ SIC называется оператором. Оператор — это неделимое предложение, выполняющее какое-либо действие. Опера­ тор может включать выражение и знак присвоения (=). В выражении переменные могут быть связаны математи­ ческими операциями сложения (+), вычитания (-), умно­ жения (*)> деления (/), возведения в степень ("). Например, вычисление площади круга S с диаметром D может быть записано выражением (3.14 * D А 2) / 4 Чтобы получить значение площади S, используют опе­ рацию присвоения (=): S = (3.14 * D А 2) / 4 Теперь рассмотрим два оператора, выполняющих де­ ление целых чисел. Оператор а\Ь (в Паскале div (а,Ь)) возвращает целую часть числа от деления целого числа а на целое число Ь. Например, 7\3 или div (7 ,3) равно 2. Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 151 Оператор a mod Ь (в Паскале mod(a,b)) возвращает остаток от деления целого числа а на целое число Ь. На­ пример, 7 mod 3 или mod (7 ,3) равно 1. Если одно число делится на другое без остатка, оператор mod возвращает значение 0. Например, 8 mod 4 равно 0. В отличие от математических операций, результатом выполнения которых может быть любое числовое значе­ ние, операция отношения может иметь только два значе­ ния — True (Истина) и False (Ложь), которые могут при­ нимать переменные типа Boolean. В языке BASIC применяются следующие обозначения для операций отношения: = (равно); < > (не равно); > (больше); < (меньше); = > (больше или равно); < = (меньше или равно). Переменные, выражения или константы, связанные операциями отношения, будем называть условиями. Например, для условия 25 < > 3 0 результатом будет True (Истина); для условий 25 < 30 — True (Истина); 25 > 30 — False (Ложь). Логические операции применяются в логических вы­ ражениях. Если существует несколько вариантов выбора в операциях отношения или в условиях, то они связыва­ ются между собой логическими операциями. Рассмотрим примеры логических операций (И — конъ­ юнкция (And); ИЛИ — дизъюнкция (Or); НЕ — отрицание (Not)): • (Условие 1)And (Условие 2) — результатом будет True, если оба условия имеют значения True, в противном случае — False; • (Условие 1) Or (Условие 2) — результатом будет False, если оба условия имеют значения False, в противном случае — True; • Not (Условие) — меняет значение условия на обратное, т. е. False на True, a True на False. Теперь приведем операторы ввода: a=InputBox("а=") и вывода: MsgBox "а=" & а значений переменной а, снабженных подсказкой "а=". 152 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Завершим подраздел со­ зданием программы расчета периметра прямоугольного треугольника Р с известны­ ми катетами а и Ь (рис. 5.15) на основании блок-схемы на рис. 5.1. Программный мо­ дуль в BASIC, как правило, оформляется в виде проце­ дуры, которая начинается с ключевого слова Sub (проце­ Рис. 5.15 дура) и имени (в данном слу­ чае Fig 5_1) и завершается ключевыми словами End Sub. Имя процедуры может со­ держать скобки, например Fig 5_1 (а, Ь), что означает присутствие фактических параметров а и Ь, используемых в программе, именуемой телом процедуры. Здесь в строках 2 -5 описываются переменные, т. е. ука­ зывается их тип Single. Строки 6, 7 — операторы ввода значений переменных (катетов а, Ь). В строке 8 вычисля­ ется гипотенуза с, а в строке 9 — периметр треугольника Р. Строка 10 — оператор вывода значения периметра Р. Sub Fig5 1 Dim a As Single Dim b As Single Dim с As Single Dim P As Single а = InputBox("а=м) b = InputBox("b=") с = Sqr(aA2+bA2) P = a+b+c MsgBox 11Р=" & Р End Sub 5.3.3. УСЛОВНЫЕ ОПЕРАТОРЫ В языке BASIC имеются различные операторы ветвле­ ния, называемые условными операторами и позволяющие сделать выбор: какие действия должны выполняться в за­ висимости от выполнения логических условий. Кратко опишем и приведем примеры применения основных опе­ раторов BASIC. Условные операторы. Начнем с условных операторов, имеющих однострочный синтаксис и осуществляющих неполное и полное ветвление в зависимости от результа­ тов анализа одного условия: If условие Then [Оператор] End If If условие Then [Оператор1] Else [Оператор2] End If Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 153 Если условие после If истинно, т. е. результат равен True (истина), выполняется Оператор при неполном ветв­ лении или Оператор1 при полном ветвлении. В против­ ном случае, когда результат равен False (ложь), при пол­ ном ветвлении выполняется Оператор2, а при неполном — не выполняется ничего. На основании блок-схем на рис. 5.3 составим програм­ мы нахождения минимального min среди трех чисел а, Ь, с (рис. 5.16), использующие условные операторы. а б Sub Fig5 За Dim a As Single Dim b As Single Dim с As Single Dim min As Single a = InputBox("a=") b = InputBox ("b=,f) с = InputBox ("c=11) min = a If ba)And(c>a) Then min = a Elseif (a>b)And(c>b) Then min = b Else min = с End If MsgBox "min=,f & min End Sub Рис. 5.16 В программе на рис. 5.16а имеются два условных опе­ ратора с однострочным синтаксисом, осуществляющие не­ полное ветвление. В большинстве реальных случаев приходится выпол­ нять несколько операторов на основании результатов ана­ лиза нескольких условий, применяя условный оператор с многострочным синтаксисом: If условие1 Then [Оператор1] Elseif условие2 Then [Оператор2] 154 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Else [ОператорЗ] End If Такой условный оператор содержит программа на рис. 5.166. Здесь простые условия Ь>а и с> а, а>Ь и с>Ь, объединенные логической операцией And, позволяют оп­ ределить минимальные числа а и Ь согласно соотнош е­ нию (5.1). Еще одним условным оператором ветвления является Select Case, позволяющий выполнить одну или несколь­ ко групп операторов в зависимости от значения условия. Синтаксис оператора Select Case имеет следующий вид: Sub Fig5 5 Dim Т As Integer Dim S As String T=InputBox("T=") Select Case T Case 5 To 11 S=MДоброе утро" Case 12 To 16 S=11Добрый день” Case 17 To 21 S=MДобрый вечер" Case Else S="Доброй ночи” End Select MsgBox S End Sub Select Case выражение Case значение 1 [Оператор 1] Case значение 2 [Оператор 2] Case значение n [Оператор n] Case Else [Оператор n+1] End Select Рис. 5.17 Параметр выражение — любое числовое или строковое выражение. Значение выражения сравнивается с парамет­ рами значение 1, значение 2 , ...,значение п. Если хотя бы одно из сравнений удачное, то выполняется соответст­ вующий Оператор 1,Оператор 2 ,...,Оператор п ,в про­ тивном случае Оператор п+1. В качестве параметров зна­ чение блока Case могут выступать одна (1) или несколько разделенных запятой (2 , 3 , 4) числовых величин, преде­ лы изменения (5 То 8) или условия (Is >= 9). Применяя 155 Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ оператор Select Case, можно составить программу выво­ да сообщения о времени суток (рис. 5.17) на основании блоксхемы алгоритма, приведенного на рис. 5.5. Здесь значения­ ми параметра Т блока Case являются пределы изменения или интервалы времени 5 То 11, 12 То 1 6 и 1 7 То 21. 5.3.4. ЦИКЛЫ Циклы предназначены для многократного выполнения одного или нескольких операторов. В языке BASIC име­ ются две конструкции: цикл For... Next, дающий возмож­ ность устанавливать число проходов, и циклы While... Wend и Do... Loop, завершающиеся при выполнении заданного условия. Цикл For... Next является самой старой и самой про­ стой конструкцией: For Счетчик=Начало То Конец [Step шаг] [Операторы] Next [Счетчик] Перед выполнением цикла значение Счетчик устанав­ ливается в Начало. При каждом проходе переменная Счет­ чик увеличивается на 1 или на величину шаг ^ 1 до тех пор, пока переменная Счетчик не станет больше, чем значение Конец. На рис. 5.18 приводится программа вычисления сум­ мы S чисел 1, 1 /2 ,1 /3 ,..., 1/N до некоторого заданного чис­ ла N согласно блок-схеме алгоритма на рис. 5.7. В этом слу­ чае известно заранее число элементов суммы, поэтому ис­ пользуется оператор For... Next. Если число элементов цик­ Sub Fig5_7 ла неизвестно, применяются Dim N As Integer другие разновидности циклов: Dim S As Single Dim i As Integer While... Wend и Do... Loop. N = InputBox("N=") Цикл While... Wend являет­ S = 0 ся циклом с предусловием и For i = 1 To N имеет следующий синтаксис: S = S+l/i While условие [Операторы] Wend Next i MsgBox "S=" & S End Sub Рис. 5.18 156 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ В зависимости от позиции условия различают два ва­ рианта цикла с постусловием Do... Loop, содержащего вы­ ражение While или Until: Do [Операторы] Loop [While|Until] условие Слово While вызывает очередной проход цикла, если условие истинно, a Until — если условие ложно. На рис. 5.19 приведены программы определения количества i чисел 1, 1 /2, 1 /3 , ..., 1/i, при котором их сумма S должна стать не меньше заданной Sz. Программа на рис. 5.19а по­ строена на основании оператора цикла с предусловием While... Wend и блок-схемы на рис. 5.8а, а программа на рис. 5.196 — на основании оператора цикла с постуслови­ ем Do... Loop Until и блок-схемы на рис. 5.86. Программные реализации алгоритмов ввода элементов одномерного (рис. 5.10а) и двумерного (рис. 5.10б) масси­ вов приводятся на рис. 5.20. Развитие этих программ свя­ зано с вычислением сумм положительных Sp и отрицатель­ ных Sn элементов одномерного (рис. 5.21а) и двумерного (рис. 5.21 б) массивов на основании соответствующих блоксхем алгоритмов на рис. 5.12. б а Sub Fig5 8а Dim Sz As Single Dim S As Single Dim i As Integer Sz = InputBox (nSz=") S = 0 i = 0 While S < Sz i = i + 1 S = S + 1/i Wend MsgBox ni=" & i End Sub Рис. 5.19 Sub Fig5_8b Dim Sz As Single Dim S As Single Dim i As Integer Sz = InputBox(”Sz=") S = 0 i = 0 Do i = i + 1 S = S + 1/i Loop Until S > Sz MsgBox ui=" & i End Sub Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ а 157 6 Sub Fig5_10a Dim а (5) As Single Dim i As Integer For i = 1 To 5 a(i) = InputBox("a=") Next i End Sub Рис. 5.20 Sub Fig5_12a Dim a (5) As Single Dim i As Integer Dim Sp As Single Dim Sn As Single Sp = 0 Sn = 0 For i = 1 To 5 a(i) = InputBox ("a=11) If a(i) > 0 Then Sp = Sp+a(i) E ls e Sn = Sn+a(i) End I f Next i MsgBox "Sp=" & Sp MsgBox flSn=" & Sn End Sub Sub Fig5_10b Dim a (5 ДО) As Single Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 10 a(i,j) = InputBox("a=") Next j Next i End Sub Sub Fig5_12b Dim a (5 Д0) As Single Dim i As Integer Dim j As Integer Dim Sp As Single Dim Sn As Single Sp = 0 Sn = 0 For i = 1 To 5 For j = 1 To 10 a(i,j) = InputBox ("a=11) If a (i ,j)>0 Then Sp = Sp+a(i,j) Else Sn = Sn+a(i,j) End If Next j Next i MsgBox "Sp=" & Sp MsgBox MSn=M & Sn End Sub Рис. 5.21 В заключительной части материала о циклах рассмот­ рим программную реализацию сортировки одномерного массива а 19 а2, ..., а5 методом «пузырька» (см. рис. 5.22) на основании ранее созданных программы на псевдокоде (см. рис. 5.14а) и блок-схемы (рис. 5.146). Помимо циклов с параметрами For... N ext, осуществ­ ляющих ввод данных, перебор элементов массива и вывод 158 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Sub Fig5_14 Dim а (5) As Integer Dim Ind As Integer Dim b As Integer Dim i As Integer For i = 1 To 5 a(i) = InputBox (11a=11) Next i Do Ind = 1 For i = 1 To 4 If a(i)>a(i+l) Then b = a (i) a(i) = a(i+1) a(i+l) = b Ind = 0 End If Next i Loop While lnd=0 For i=l To 5 MsgBox "a(i)=" & a(i) Next i End Sub Рис. 5.22 данных, программа содер­ жит цикл с постусловием Do... Loop While Ind = 0, в теле которого и выполняет­ ся сортировка методом «пу­ зырька» массива av а2, ..., а5по возрастанию. Во всех программах на рис. 5 .2 0 -5 .2 2 использу­ ется цикл For... Next пото­ му, что известно количест­ во вводимых и выводимых элементов одномерных и двумерных массивов. Ме­ тод «пузырька» является самым простым, но не са­ мым эффективным. Гораздо большим быст­ родействием обладает сорти­ ровка методами включения, выбора, разделения и др. 5.3.5. ОПЕРАЦИИ С СИМВОЛЬНЫМИ ПЕРЕМЕННЫМИ Рассмотрим некоторые широко используемые опера­ ции с символьными данными (строками). Операция сцепления (конкатенации) « + » служит для соединения нескольких строк в одну строку. Например, конкатенация строк «Папа» + « ел» + « суп» дает строку «Папа ел су п ». Операции отношения (=, <, >, <=, > =, <>) производят сравнение двух строк, имеющее в результате логическое значение Истина или Ложь. Две строки сравниваются слева направо до первого не­ совпадающего символа. Строка считается большей, если в ней первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют раз­ ную длину, но в общей части символы совпадают, считает­ ся, что более короткая строка меньше, чем более длинная. 159 Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ Строки равны, если они совпадают по длине и содержат одни и те же символы. Ряд операций с символьными данными выполняют функции, часть из которых приведена в табл. 5.1. Таблица 5.1 Функция Выполняемая операция M i d ( х , i , к) Вырезает (заменяет) в символьной переменной х к символов, начиная с i-ro S t r (х) Переводит числовое значение переменной х в символьное значение V a l (х) Переводит символьное значение переменной х в числовое значение L e f t ( х , п) Возвращает п символов, стоящих с левого края символьной переменной х R i g h t ( х, п) Возвращает п символов, стоящих с правого края символьной переменной х LTrim(x) Устраняет начальные пробелы из строки х На рис. 5.23 приводится программа, содержащая опе­ рации с символьными данными, в которой из целого поло­ жительного двузначного числа ab получается двузначное число Ьа путем перестановки первой а и второй Ь цифры. Sub Symbols Dim a, ab, b, ba As Integer Dim s As String 1Ввод числа ab ab = InputBox("Ввод ab") ?Перевод числа ab в строку s s = Str(ab) 'Удаление пробелов s = LTrim(s) 'Перестановка символов a,b a = Left(s, 1) b = Right(s, 1) Mid(s, 2, 1) = a Mid(s, 1, 1) = b !Перевод строки s в число ba ba = Val(s) MsgBox "ba =" & ba End Sub Рис. 5.23 160 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Программа имеет линейную структуру и состоит из опе­ раций перевода числа в строку, удаления пробелов, пере­ становки символов и перевода строки в число, выполняе­ мых с помощью функций из табл. 5.1. Ввиду отсутствия блок-схемы для лучшего понимания программа снабжена комментариями — поясняющими надписями, начинаю­ щимися с апострофа ('). § 5.4. ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ Программы на языках объектно-ориентированного программирования Visual Basic и Visual Basic for Applica­ tions (VBA) строятся из объектов подобно тому, как из раз­ личных деталей создаются аппараты и установки. Про­ граммные модули объектов в большом количестве вхо­ дят в системы программирования на языках Visual Basic и VBA. Системы объектно-ориентированного программирова­ ния дают возможность визуализировать процесс создания графического интерфейса разрабатываемого приложения, что дает возможность создавать объекты и задавать значе­ ния их свойств с помощью диалоговых окон. 5.4.1. КЛАССЫ ОБЪЕКТОВ, ЭКЗЕМПЛЯРЫ КЛАССА И СЕМЕЙСТВА ОБЪЕКТОВ Основной единицей в объектно-ориентированном про­ граммировании является программный объект, который объединяет в себе как описывающие его данные (свойст­ ва), так и средства обработки этих данных (методы). Если говорить образно, объекты — это «сущ естви­ тельные», свойства объекта — «прилагательные», а ме­ тоды объ ек та — «глаголы». Программные объекты об­ ладают свойствами, используют методы, и реагируют на события. Классы объектов являются «шаблонами», определяю­ щими наборы свойств, методов и событий. По этим шабло­ нам создаются объекты. Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 161 Каждый из классов обладает специфическим набором свойств, методов и событий. Например, в приложении W ord существует класс объектов «документ» (Document), который обладает: • свойствами: имя (Name), полное имя (FullName) и т. д.; • методами: открыть документ (Open), напечатать доку­ мент (Printout), сохранить документ (Save) и т. д.; • событиями: создание документа (Document_New () ) , закрытие документа (Document_Close ( ) ) и т. д. Экземпляр класса — это объект, созданный по «шаб­ лону» класса объектов, который наследует весь набор свойств, методов и событий данного класса. Каждый эк­ земпляр класса имеет уникальное для данного класса имя, которое указывается в скобках после названия класса, на­ пример: Document("Отчёт.doc") Различные экземпляры класса обладают одинаковым набором свойств, однако значения свойств у них могут от­ личаться. Так, в приложении W ord могут быть открыты несколько документов, экземпляров класса Document, ко­ торые имеют различные имена, хранятся в различных ка­ талогах и т. д. Семейство объектов представляет собой объект, содер­ жащий несколько объектов — экземпляров одного клас­ са. Например, все открытые в текущий момент в приложе­ нии Word документы образуют семейство, которое обозна­ чается следующим образом: Documents() Обращение к объекту, входящему в семейство, произ­ водится по его имени или индексу. Например, обращение к документу производится по его имени: Documents("Отчёт.doc") Все символы, входящие в выделенный фрагмент доку­ мента (объект Selection), входят в семейство Charac­ ters (). Обращение к символу производится по его индек­ су, например: Characters (7). 162 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ 5.4.2. ОБЪЕКТЫ: СВОЙСТВА, МЕТОДЫ, СОБЫТИЯ Свойства объектов (Properties). Каждый объект об­ ладает определенным набором свойств, первоначальные значения которых можно установить с использованием диалогового окна системы программирования. Значения свойств объектов можно изменять в про­ граммном коде. Для присвоения свойству объекта нового значения в левой части строки программного кода необхо­ димо указать имя объекта и затем название свойства, раз­ делив их между собой точкой. В правой части строки (по­ сле знака равенства) необходимо записать конкретное зна­ чение свойства: Объект.Свойство = Значение Свойства Например, установим в выделенном фрагменте текста (объект Selection) для первого символа (объект Charac­ ters (1)) начертание полужирный (свойство Bold). Свой­ ство Bold может быть установлено (значение True свойст­ ва) или не установлено (значение False свойства). В дан­ ном случае свойству Bold присваиваем значение True: Selection.Characters(1).Bold = True Методы объектов (Methods). Для того чтобы объект выполнил какую-либо операцию, необходимо применить метод. Многие методы имеют аргументы, которые позво­ ляют задать параметры выполняемых действий. Для при­ сваивания аргументам конкретных значений использу­ ется знак :=. Чтобы определить, для какого объекта вы­ зывается метод, перед именем метода указывается имя объекта, отделенное точкой: Объект.Метод aprl := значение Так, сохранение на диске открытого в приложении W ord документа реализуется методом Save без аргумен­ тов: Documents("Отчёт.doc").Save Операция открытия в приложении W ord документа Отчёт.doc должна содержать не только название метода Глава 5. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ 163 Open, но и указание пути к открываемому файлу (аргумен­ ту FileName метода Open необходимо присвоить конкрет­ ное значение): Documents(1).Open FileName := " С :\Документы\Отчёт.doc" События (Events) представляют собой действия, на которые реагирует объект. Событие может создаваться пользователем (например, щелчок мышью или нажатие клавиши) или возникать при воздействии других про­ граммных объектов. В качестве реакции на события вы­ зывается определенная процедура, которая может изме­ нять значения свойств объекта, вызывать его методы и т. д. Например, объект Document (Документ) реагирует на события Open (Открытие), New (Создание) и Close (Закры­ тие), а объект Selection (Выделенный фрагмент докумен­ та) реагирует на события Cut (Вырезание), Сору (Копиро­ вание), Paste (Вставка), Delete (Удаление) и т. д. ГЛАВА ШЕСТАЯ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ § 6 .1 . СИСТЕМЫ ПРОГРАММИРОВАНИЯ Система программирования включает входной язык программирования, транслятор, машинный язык, библио­ теки стандартных программ и средства отладки оттрансли­ рованных программ. В системе программирования с помо­ щью языка программирования создается текст программы, описывающий разработанный алгоритм. Чтобы программа была выполнена, надо весь ее текст перевести в машинный код, это осуществляет одна из программ, именуемая интер­ претатором или компилятором. Интерпретатор функционирует следующим образом: берет очередной оператор языка из текста программы, ана­ лизирует его структуру и затем исполняет. После успеш­ ного выполнения текущей команды интерпретатор пере­ ходит к анализу и исполнению следующей и т. д. Поэтому программы, в которых требуется произвести большой объ­ ем повторяющихся действий, будут работать медленно. Для выполнения программы на другом компьютере также необходимо установить интерпретатор, так как без него программа работать не будет. Интерпретаторы разработа­ ны для языков BASIC и JAVA. Компиляторы полностью обрабатывают весь текст, на­ зываемый исходным кодом, преобразуя его в объектный код. Процесс подготовки программы на языке высокого уровня к выполнению состоит из трех этапов: трансляции, компоновки и загрузки. Трансляцией называется процесс преобразования про­ граммы из исходного языка в объектный. Процесс транс- Глава 6. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ 165 Рис. 6.1 ляции включает в себя три стадии: лексический анализ, синтаксический анализ и генерацию объектного кода, вы­ полняемые, соответственно лексическим анализатором, синтаксическим анализатором и генератором объектного кода (рис. 6.1). Лексический анализатор считывает символы исход­ ной программы, определяет, какие группы символов об­ разуют отдельные элементы, и классифицирует эти эле­ менты по признакам: числовые значения, слова, арифме­ тические операторы и т. д. В процессе классификации элементов лексический анализатор превращает элемен­ ты в цепочки битов, называемых лексемами (tokens), и передает их синтаксическому анализатору. Синтаксический анализатор просматривает програм­ му как совокупность лексем и группирует их в отдельные высказывания. В процессе их синтаксического анализа определятся правильность написания (синтаксиса) про­ граммы. При обработке операторов описания синтаксиче­ ский анализатор записывает содержащуюся в них инфор­ мацию в таблицу имен. Последняя стадия процесса трансляции программы — это генерация кода, т. е. создание команд машинного язы­ ка, выполняющих выражения, распознанные синтаксиче­ ским анализатором. Как правило, объектная программа является лишь одним фрагментом целой программы, ка­ ждой части которой для выполнения задачи необходимо взаимодействие с другими частями (например, обслужи­ вающими программами операционной системы). Компоновщик (редактор связей) связывает полученные после трансляции объектные программы, процедуры опера­ ционной системы и другие обслуживающие программы и соз­ дает готовый к исполнению ЕХЕ-файл (загрузочный модуль). С помощью программы, называемой загрузчиком, для выполнения программы загрузочный модуль помещается в оперативную память. 166 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ После завершения трансляции и компоновки програм­ му можно загрузить и выполнить, не возвращаясь к ис­ ходной версии. Однако если программу необходимо изме­ нить, то все изменения вносятся в исходную программу, которая затем снова транслируется и связывается. В ре­ зультате создается загрузочный модуль, содержащий из­ менения. Помимо указанных программных средств, в состав сис­ темы программирования входят: • текстовый редактор (необходимый для создания и ре­ дактирования исходного кода программы на языке про­ граммирования); • отладчик; • библиотеки функций; • справочная система. Основной недостаток компиляторов — трудоемкость трансляции языков программирования, ориентированных на обработку данных сложной структуры, заранее неиз­ вестной или динамически меняющейся во время работы программы. § 6.2. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ При создании средних по размеру приложений (не­ сколько тысяч строк исходного кода) используется струк­ турное программирование. Идея структурного програм­ мирования заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы ал­ горитм решения был ясно виден из исходного текста. С этой целью, помимо трех простых базовых структур (ли­ нейного, разветвляющегося и циклического алгоритмов) из гл. 5, введено понятие подпрограммы — набора опера­ торов, выполняющих нужное действие и не зависящих от других частей исходного кода. Программа разбивает­ ся на множество мелких подпрограмм (занимающих до 50 операторов — критический порог для быстрого пони­ мания цели подпрограммы), каждая из которых выпол­ няет одно из действий, предусмотренных исходным зада­ нием. Комбинируя эти подпрограммы, удается формиро­ Глава 6. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ 167 вать итоговый алгоритм уже не из простых операторов, а из законченных блоков кода, имеющих определенную смысловую нагрузку, причем обращаться к таким блокам можно по названиям. Получается, что подпрограммы — это новые операторы или операции языка, определяемые программистом. Возможность создания и применения подпрограмм реализуют процедурные языки программи­ рования. Наличие подпрограмм дает возможность вести нисхо­ дящее и восходящее проектирование и разработку про­ грамм. Нисходящее проектирование, осуществляемое сверху вниз, начинается с разбиения задачи на небольшие, более легко решаемые подзадачи. Затем эти небольшие подзада­ чи разбиваются на еще меньшие подзадачи. Таким обра­ зом, сложная задача превращается в набор более простых задач, решение которых представляет собой решение ис­ ходной задачи. В результате применения нисходящего проектирова­ ния получается иерархическая система с подзадачами, оформленными в виде подпрограмм. Важно отметить, что небольшие подпрограммы значи­ тельно проще отлаживать, а это существенно повышает общую надежность всей программы. Восходящее проектирование (снизу вверх) программ­ ной системы, в отличие от нисходящего проектирования, начинается с определения частных задач и анализа того, как решения этих задач могут обеспечить решение более сложной задачи. Такой подход стал возможным, посколь­ ку в настоящее время имеются готовые программные мо­ дули, предназначенные для решения большого числа ча­ стных задач. Таким образом, структурное программиро­ вание предполагает использование трех базовых структур и подпрограмм. Подпрограммы бывают двух видов — процедуры и функ­ ции. Отличаются они тем, что процедура просто выполняет группу операторов, а функция вдобавок вычисляет некото­ рое значение и передает его обратно в главную программу (возвращает значение). Это значение имеет определенный 168 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ тип (говорят, что функция имеет такой-то тип). Подпрограм­ мы решают три важные задачи: • избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты; • улучшают структуру программы, облегчая ее понима­ ние; • повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификациях программы. Программа на BASIC состоит из процедур, содержащих описания и инструкции (операторы), сгруппированные для выполнения определенных задач. В BASIC можно создать указанные выше типы процедур. Рассмотрим простые при­ меры построения структурированных программ на BASIC, использующих процедуры и функции. Процедура Sub. При ее запуске выполняются операто­ ры, а затем управление передается в приложение или про­ цедуру, которая вызвала Sub. Процедура Sub имеет сле­ дующий синтаксис: Sub имя(аргументы) [операторы] End Sub Здесь Sub, End Sub — ключевые слова, используемые в описании любой процедуры Sub; имя — выражение, оп­ ределяющее имя процедуры; аргументы — параметры, позволяющие передать в процедуру требуемые значения. Функция Function. Ее отличие от Sub состоит в том, что процедура Function обязательно возвращает значение. Процедура Function имеет следующий синтаксис: Function имя(аргументы)[As Тип] [операторы] имя = выражение End Function Здесь Function, End Function — ключевые слова; имя — параметр, определяющий имя функции; аргумен­ ты — параметры для передачи в функцию значений; As Тип — параметр, задающий тип данных, который возвра­ Глава 6. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ 169 щает функция. Оператор имя = выражение задает возвра­ щаемое значение. Рассмотрим функцию, которая возвращает длину ок­ ружности заданного радиуса: Function L(Radius As Double) As Double Const Pi = 3.14159 L = 2*Pi*Radius End Function В этой программе: • функция L возвращает значение типа Double; • аргумент Radius также имеет тип Double; • в теле функции определяется константа P i; • результат расчета присваивается переменной L, кото­ рая является именем функции. Рассмотрим несколько способов вызова процедур и функций, реализующих идеи структурного программиро­ вания. В первом примере (рис. 6.2) из процедуры Main вызы­ вается процедура Out без аргументов. SubMain() ‘ Ч-----------------------------------.............. ...г.... ' Su1bOut() End Sub 1gBox "Здравствуй" M s \ —EndSub Рис. 6.2 При запуске процедуры Main программа переходит в процедуру Out, выполняет ее, оператор выводит в окне со­ общения надпись "Здравствуй" и возвращается в точку прерывания, т. е. в процедуру Main. Во втором примере, используя исходную схему на рис. 6.2, снабдим процедуру Out аргументом-строкой Nm, добавляющим к сообщению какое-либо имя, например "Иван" (см. рис. 6.3). Здесь вызывается та же процедура Out и ей дополнительно передается один аргумент "Иван". 170 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ SubMain<) # ^ ............ Out "Иван" Sub Ou5(HmAs Strine) End Sub MsgBox"Здравс,гвуй"&№ п -Еп1 Sub Рис. 6.3 SubMain() ......... t ’ * ’ * N cl1=N D$(200,0.13) EndSub 1 Functio nN DS(DohAs Currency, Nst As Single) As Currency \oh*N *st 1 N DS“D EndFunction Рис. 6.4 В третьем примере в процедуре Main вызывается функ­ ция NDS (рис. 6.4). В качестве аргумента ей придаются зна­ чения 200 и 0,13, являющиеся соответственно доходом (Doh) и налоговой ставкой (Nst); возвращаемое значение, в данном случае 26, присваивается переменной Nal. Важно подчеркнуть, что идеология структурного про­ граммирования запрещает использование операторов без­ условного перехода, нарушающих логичность программ. Следует отметить, что функции применяются для ор­ ганизации рекурсивных подпрограмм. Рекурсивной назы­ вается подпрограмма, которая в своем описании содержит обращение к самой себе. Например, факториал F = l - 2 - 3 - . . . - N = N\ можно рекурсивно определить, исходя из следующей формулы: [1, еслиД^ <1; \(N -1)\- N, в противном случае. На рис. 6.5 приводится пример программы, в которой процедура Factorial вызывает функцию F (N), вычисляю­ щую факториал N. Глава 6. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ 171 Sub Factorial Dim N, Y As Integer N = InputBox{"Ввод N=") Y = F(N) MsgBox "F=" & Y End Sub Function F(N As Integer) If N <= 1 Then F = 1 Else F = F(N-l)*N End If End Function Рис. 6.5 Функция F в этой программе является рекурсивной, поскольку она вызывает сама себя посредством обращения изнутри к своему имени F. Рекурсивные подпрограммы нашли применение в за­ дачах сортировки и поиска на деревьях. Рекурсивные функции имеют ограниченное примене­ ние, поскольку в некоторых случаях требуют выделения значительного объема памяти для выполнения вычислений. § 6.3. ЭТАПЫ ПОДГОТОВКИ И РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРЕ В процессе подготовки и решения на компьютере научно-технических и экономических задач можно выделить следующие этапы: 1. Постановка задачи. Формулируется цель решения задачи, подробно описывается ее содержание; анализиру­ ются условия, при которых решается поставленная зада­ ча, выявляется область определения входных параметров задачи. 2. Математическое описание задачи. Выполняется математическая формализация задачи, в которой сущест­ вующие взаимосвязи между величинами выражаются с помощью математических соотношений. Как правило, математическая модель строится с определенной точно­ стью, допущениями и ограничениями. 172 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ 3. Выбор и обоснование метода решения. Модель реше­ ния задачи реализуется на основе конкретных приемов и методов решения. В большинстве случаев математическое описание задачи трудно перевести на машинный язык. Выбор и использование метода решения позволяет свести решение задачи к конкретному набору машинных команд. 4. Построение алгоритма. На данном этапе составля­ ется алгоритм решения задачи в соответствии с выбран­ ным методом решения. Процесс обработки данных разби­ вается на отдельные относительно самостоятельные бло­ ки, определяется последовательность выполнения этих блоков. 5. Составление программы. Алгоритм решения пере­ водится на конкретный язык программирования. 6. Отладка программы. Это процесс устранения син­ таксических и логических ошибок в программе, выявлен­ ных в процессе ее трансляции. 7. Решение задачи на компьютере и анализ результа­ тов. После отладки программу можно использовать для решения поставленной задачи. Первоначально выполня­ ется многократное решение задачи на компьютере для раз­ личных наборов исходных данных. Получаемые резуль­ таты анализируются специалистом, поставившим задачу. Все приведенные этапы тесно связаны между собой. Например, анализ результатов может привести к необхо­ димости внесения изменений в программу, алгоритм, ме­ тод решения или даже в постановку задачи. ГЛАВА СЕДЬМАЯ ЭЛЕКТРОННЫЕ ТАБЛИЦЫ § 7 .1 . ОСНОВНЫЕ ПОНЯТИЯ И ЭЛЕМЕНТЫ ЭЛЕКТРОННЫХ ТАБЛИЦ Решение ряда экономических задач часто приводит к об­ работке прямоугольных таблиц данных разных типов (тек­ стовых, числовых). Применение в этих целях средств алго­ ритмических языков высокого уровня оказалось во многих случаях неэффективным. Текстовые процессоры дают воз­ можность редактирования и форматирования таблиц, но они плохо приспособлены для вычислений. Вышеуказанные причины вызвали появление программ, называемых элек­ тронными таблицами, объединяющими в себе возможности: • создания и форматирования таблиц, как в текстовых процессорах; • математической обработки табличных данных; • визуализации результатов в форме таблиц, диаграмм, графиков. История развития программ обработки электронных таблиц насчитывает около двадцати лет, налицо огромный прогресс в этой области программного обеспечения. Приме­ рами программ электронных таблиц являются SuperCalc, QuatroPro, Lotus 1-2-3, Microsoft Excel. В настоящее время наибольшее распространение получил программный ком­ плекс Microsoft Excel. Современные программные продук­ ты этого вида имеют: • вычислительный модуль, с помощью которого проис­ ходит обработка данных (текстовых или числовых) в таблицах; • модуль диаграмм для создания презентационной гра­ фики, который позволяет на основе числовых данных, 174 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ полученных с помощью калькуляционного модуля, создавать диаграммы различных типов; • модуль базы данных, реализующий доступ к внешним базам данных. Электронные таблицы можно использовать для реше­ ния задач учета, составления бланков, планирования про­ изводства, расчета налогов и заработной платы, учета кад­ ров и др. Благодаря мощным математическим функциям, имеющимся в электронных таблицах, можно решать мно­ жество задач в области естественных и технических наук. Табличный процессор запускается командой Пуск, Программы, Microsoft Excel. Программа автоматически создает пустой файл рабочей книги с названием «Книга 1». В Excel приходится иметь дело с файлами рабочих книг, имеющими тип .xls, шаблонами .xlt и файлами рабочих областей .xlw. Рабочая книга содержит рабочие листы, которые и являются воплощением понятия «электронная таблица». Их число достигает 255 в одной рабочей книге. Окно Excel, так же как и окно W ord, имеет строки за­ головка и меню, панели инструментов Стандартная и Фор­ матирование. Поэтому сосредоточим внимание на таких специфических элементах, как строка формул и рабочий лист Excel, изображенных на рис. 7.1. Рис. 7.1 Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ 175 Опишем кратко назначение отмеченных элементов ра­ бочего листа: 1 — заголовок столбца, содержащий буквенные (циф­ ровые) имена 256 столбцов; 2 — кнопка выделения всего рабочего листа; 3 — заголовок строки, содержащий номера строк от 1 до 65 536; 4, 5 ,6 ,7 — кнопки перехода к первому, предыдущему, следующему и последнему листу соответственно; 8 — ярлычки листов, указывающие имена (номера) используемых листов; 9, 11 — горизонтальная и вертикальная полосы про­ крутки; 10,12 — маркеры разделения, позволяющие разделить экран по вертикали и/или горизонтали на 2 или 4 авто­ номные части. Строку формул образуют следующие элементы: 13 — поле ввода или отображения формул; 14, 15, 16, 17 — кнопки ввода функций, подтвержде­ ния ввода (аналогично клавише ), отмены ввода, просмотра и выбора стандартной функции из списка соот­ ветственно; 18 — поле имени, отображающее адрес выделенной ячейки. Пересечение строки и столбца образует ячейку табли­ цы, имеющую уникальный адрес, определяемый именем столбца и номером строки. В электронной таблице суще­ ствует понятие блока ячеек, которым может быть строка или часть ее, столбец или часть его, а также прямоуголь­ ник, состоящий из нескольких строк и столбцов или их частей. Адрес блока задается адресами первой (левой верх­ ней) и последней (правой нижней) его ячеек, между кото­ рыми ставится разделительный символ — двоеточие (:) или две точки подряд (..). На рис. 7.1 выделена одна ячейка G7, цифра 1 запол­ няет ячейки столбца АЗ:А7, цифра 2 — ячейки строки В1:Е1, а числа от 1 до 12 — прямоугольник C3:F5. Кроме того, ячейкам и блокам присваивают имена: на­ пример, блоку ячеек можно присвоить имя «матрица» и 176 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ использовать его при вычислении суммы, произведения и среднего. Используемые ссылки выполнены в наиболее популярном стиле А 1 . Существует также стиль R1C1 (от row — строка, col­ umn — столбец), который устанавливается командой Сер­ вис, Параметры в окне «Параметры» и при котором бук­ венные имена столбцов заменяются на цифровые. Запи­ шем в нашем примере в стиле R1C1 следующие адреса: столбца с единицами — R3C1 : R7C1, строки с двойками — R1C2 : R1C5 и прямоугольника с цифрами от 1 до 12 — R3C3 : R5C6. § 7 .2 . ИСПОЛЬЗОВАНИЕ ФОРМУЛ И ФУНКЦИЙ Формулы и функции служат для выполнения вычис­ лений и других операций обработки данных. Вначале рассмотрим вычисления с помощью формул. Формула начинается со знака равенства (=), за которым следуют математические операторы, операторы отноше­ ний, числа и ссылки. В формулах используются следую­ щие операторы арифметических действий: + (сложение), - (вычитание), * (умножение), / (деление), " (возведение в степень). Математические действия проводятся в таком порядке: 1) возведение в степень и выражения в круглых скобках; 2) умножение и деление; 3) сложение и вычитание. Рассмотрим пример вычисления по формулам на осно­ вании данных таблицы СЕССИЯ, изображенной на рис. 7.2. Баллы от 0 до 52 соответствуют оценке « неудовлетворитель­ но», от 53 до 79 — «удовлетворительно», от 80 до 92 — «хо­ рошо» и выше 92 — «отлично». Для вычисления среднего балла по математике и раз­ мещения его в ячейке С8 следует в этой ячейке набрать формулу =(С2 + СЗ + С4 + С5 + С6 + С7)/6 и нажать клавишу . 177 Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ СЕССИЯ А В с D Е 1 Фамилия Пол Матем Эконом Информ 2 Иванов м 96 94 97 3 Серова ж 82 91 96 4 Петров м 72 80 95 5 Ежова ж 66 50 83 6 Сёмин м 40 90 70 7 Перова ж 85 90 88 8 Рис. 7.2 В данной формуле использу­ ется относительная адресация, =В1 ч хотя в ряде случаев требуется и =А2 =В2 =С2 =D2 Ii1 абсолютная адресация. При абсо­ 1 =вз лютной адресации присутствует =В4 =D4 один или два знака $, например $В1, С$1 или $D $3, позволяю­ щие «заморозить» адрес столбца, строки или оба адреса. Рассмотрим понятие относительной адресации на при­ мере формулы = В2 (рис. 7.3). Если с помощью маркера заполнения выполнить ее копирование, то по горизонтали изменяется номер столбца, по вертикали — номер строки, а по диагонали (указано стрелкой) — номера столбца и стро­ ки. На рис. 7.4а показаны примеры копирования форму­ лы = А1 + А2, содержащей относительные ссылки (A l, А2), и формулы = $В1 + С$1, содержащей абсолютные ссылки ($B 1,C S1). На рис. 7.45 приводятся численные результа­ ты такого копирования. Теперь посчитаем по уже приведенной формуле средние баллы по экономике и информатике в таблице СЕССИЯ. По­ скольку формула состоит из относительных ссылок, то ее можно скопировать в ячейки D8 и Е8. Для этого надо помес­ тить курсор на маркере заполнения выделенной ячейки С8 и перетащить ее содержимое — формулу — в ячейки D8 и Е8. 178 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ А В С D 1 1 3 5 7 2 2 4 6 3 =А1 +А2 =В1+В2 4 =А2+А3 =В2+В3 А В С D 1 1 3 5 7 8 2 2 4 6 8 =$В1+С$1 =$B1+D$1 3 3 7 8 10 =$В2+С$1 =$B2+D$1 4 5 11 9 11 Рис. 7.4 Другой способ вычисления среднего балла связан с при­ менением функций. Функция представляет собой програм­ му с уникальным именем, после которого в скобках поме­ щаются аргументы: =ИМЯ ФУНКЦИИ(аргудаектм) В качестве аргументов функции, как правило, высту­ пают адреса ячеек, блоков или их имена с соответствую­ щим содержимым. Если аргументом функции служит дру­ гая функция, то говорят о вложенной функции. Первой выполняется вложенная, а второй — внешняя функция. Приведем примеры наиболее часто встречающихся функций. =СРЗКАЧ(аргу ме нты) — статистическая функция оп­ ределения среднего значения всех перечисленных в аргу­ ментах величин. Например, средний балл студента Ивано­ ва в таблице СЕССИЯ вычисляется по формуле =СРЗНАЧ(С2:Е2) записанной в ячейку F2. =СУШШ(аргументы) — функция определения суммы всех числовых значений аргумента, состоящего из адре­ сов ячеек и блоков. Например, суммарный балл Иванова вычисляется по формуле =СУММ(С2:Е2) помещенной в ячейку F2. =СЧЕТ(аргументы) — подсчет количества непустых числовых ячеек. Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ 179 =СЧЕТЗ(аргументы) — подсчет количества непустых ячеек, содержащих числовые и текстовые данные. Например, для подсчета количества студентов надо в ячейку А8 поместить функцию =СЧЕТЗ(А2:А7) При многократном использовании в качестве аргумен­ тов функций одних и тех же ячеек можно значительно об­ легчить работу, заменяя именем нужный диапазон ячеек. Например, выделенному диапазону ячеек СЗ:ЕЗ на рис. 7.2 присвоим имя Серова, выполнив команду Вставка, Имя, Присвоить. Тогда функция вычисления среднего для этих ячеек может быть записана так: =СРЗНАЧ (Серова) Функции можно набирать на клавиатуре или вводить с помощью кнопки мастера функций f x, находящейся на панели инструментов. Теперь рассмотрим некоторые логические формулы, в состав которых могут входить ссылки, математические опе­ раторы, операторы отношения и функции. Результатами дей­ ствия таких формул являются значения Истина или Ложь. Операторы отношения имеют вид: = (равно), <> (не равно), < (меньше), > (больше); > = (больше или равно); <= (меньше или равно). К числу наиболее распространенных можно отнести логическую функцию =ЕСЛИ(условие; значение, если истинно; значение, если ложно) проверяющую на истинность заданное логическое условие. Если выполняется условие, то результатом действия функции является значение, если истинно, в противном случае — значение, если лож но. П усть в ячей ку F7 таблицы СЕССИЯ записана функция =ЕСЛИ(С4<93,90,95) В результате ее выполнения в ячейке F7 записывается число 90, поскольку условие С4 < 93 истинно. 180 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ В состав логических формул могут входить логические функции И, ИЛИ, НЕ, выполняющие логические опера­ ции конъюнкции, дизъюнкции и отрицания. Рассмотрим пример применения логических функций для определения отличников (студентов, имеющих по всем предметам баллы, превышающие 92) и неуспеваю­ щих (студентов, имеющих балл ниже 53 хотя бы по одно­ му предмету). Так, записанная в ячейку F2 логическая функция И, определяет отличников: =И(С2>92;Б2>92;Е2>92), а логическая функция ИЛИ — неуспевающих: =ИЛИ(С2<53;02<53;Е2<53) Если отбуксировать из ячейки F2 в ячейку F7 форму­ лу =И (С 2>92;Б 2>92;Е 2>92), то в столбце F значением Истина будут отмечены отличники, а если формулу =И Л И (С2<53;В2<53;Е2<53), то в столбце F значением Истина будут отмечены неуспевающие. Существенное увеличение возможностей логических функций достигается при сочетании вложенных функций ЕСЛИ и функций И, ИЛИ. Например, в столбце F вычислим размер стипендии, начисляемой следующим образом: • 300 руб., если средний балл выше 92; • 200 руб., если средний балл в пределах от 80 до 92; • в остальных случаях стипендия не начисляется. В ячейку F1 введем имя столбца: Стипендия, а в ячей­ ку F2 запишем формулу =ЕСЛИ(СРЗНАЧ(С2:Е2)>92;300; ЕСЛИ(СРЗНАЧ(С2:Е2)>79;200;0)) Если выполнить буксировку этой формулы до ячей­ ки F7, то получим таблицу ВЕДОМОСТЬ с полем Стипен­ дия (рис. 7.5). Вычисление суммы и количества можно осуществить с учетом условий, используя сводные функции: 181 Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ ВЕДОМОСТЬ А В с D Е F 1 Фамилия Пол Матсм Эконом Информ Стипендия 2 Иванов м 96 94 97 300 3 Серова ж 82 91 96 200 4 Петров м 72 80 95 200 5 Ежова ж 66 50 83 6 Сёмин м 40 90 70 7 Перова ж 85 90 88 200 Рис. 7.5 =СУММЕСЛИ(область просмотра; критерий поиска; область суммирования) =СЧЕТЕСЛИ(область просмотра; критерий поиска) Приведем примеры применения этих функций; • сумма, полученная студентками: =СУММЕСЛИ(В2:В7;"ж";Е2:Г7) • количество студентов мужского пола: =СЧЕТЕСЛИ(В2:В7;"м") Использование функции =СУММЕСЛИ() и функции =СЧЕТЕСЛИ() ограничено возможностью анализа в них только одного условия. Большую гибкость представляют функции, работаю­ щие с массивами. Усложним рассмотренные ранее функ­ ции, например: • сумма, полученная студентками, имеющими балл по информатике выше 93: =СУММ (ЕСЛИ(В2:В7="ж"; ЕСЛИ(Е2:Е7>93; F2:F7))) • число студентов мужского пола, не получающих сти­ пендию: =СЧЕТ(ЕСЛИ(В2:В7="м");ЕСЛИ(Е2:Е7=0;1)) 182 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ ИЛИ =СУ ММ(ЕС JIИ(В2:В7= " м "); ЕСЛ H(F2: F7=0; 1)) • число студентов, имеющих по математике оценку ниже средней: =СУММ(ЕСЛИ(С2:С7<СРЗНАЧ(С2:С7); 1)) Здесь при вычислении количества элементов в качест­ ве аргумента функции ЕСЛИ используются ссылки на ячей­ ки или 1, чего нельзя делать в функциях СУММЕСЛЩ) и СЧЕТЕСЛИ(). В функциях, работающих с массивами, нельзя применить логические функции И, ИЛИ. Вместе с тем за счет вложенных ЕСЛИ между логиче­ скими условиями можно реализовать лишь логическую связку И. Применение всех логических связок и другие возможности позволяют сконструировать функции баз дан­ ных, имеющие синтаксис =ИМЯ ФУНКЦИЩ ^сходкьш диапазон; Поле; Критерий), где Исходный диапазон — блоки ячеек таблицы, участ­ вующ ие в вы числении; П оле — имя поля, элементы которого подлежат вычислению и под которым записана формула; Критерий — блок ячеек, в которых записаны условия вычислений. Раздел мастера функций «Работа с базой данны х» со­ держит следующие функции, выполняющие вычисления с элементами выбранного поля в соответствии с условия­ ми, записанными в критерии: БСЧЕТ — подсчитывает количество непустых число­ вых ячеек; БСЧЕТА — подсчитывает все непустые ячейки; БДСУММ — суммирует значения всех элементов; ДСРЗНАЧ — находит среднее значение всех элементов. Эти функции применяются к данным, организованным в виде списка. Список — это таблица Excel, данные в которой распо­ ложены так же, как в базе данных. В такой таблице каж­ дый столбец имеет свой заголовок, который называется 183 Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ именем поля. Все имена полей располагаются в первой строке таблицы. На каждое имя отводится одна ячейка. Отдельный столбец такой таблицы называется полем дан­ ных, а каждая строка — записью. Запись состоит из эле­ ментов, число которых равно числу полей данных. Все за­ писи имеют одинаковую структуру. Списком можно счи­ тать таблицу ВЕДОМОСТЬ (см. рис. 7.5), на основании которой составим несколько примеров применения функ­ ций баз данных. П р и м е р 7.1. В ячейке С8 таблицы ВЕДОМОСТЬ на рис. 7.5 вычислить средний балл по математике у студен­ тов мужского пола. Предварительно выделив ячейку С8, сформируем в ячейках G l, G2 критерий (рис. 7.6) и, исполь­ зуя мастер функций, запишем в ячейку С8 формулу =ДСРЗНАЧ(А1 :F8;C1;G1:G2), где С1 — адрес названия поля Матем, содержимое которого подлежит вычислению. Здесь и далее диапазон для критерия оформляется сле­ дующим образом: в первой строке записываются (или ко­ пируются) имена полей таблицы, для которых задаются условия, а во второй и последующих строках вводятся не­ посредственно сами условия. Используя таблицу ВЕДОМОСТЬ, рассмотрим некото­ рые примеры задания критерия для функций баз данных. П р и м е р 7 . 2 . В ячейке А8 подсчитать количество сту­ денток, успевающих по всем предметам. Критерий будет выглядеть в соответствии с рис. 7.7. Следует обратить внимание на некоторые особенности полученного критерия: 1. Он начинается со строки 10 и отделен от таблицы ВЕДОМОСТЬ двумя пустыми строками. G А В С D 1 Пол 10 Пол Матем Эконом Информ 2 м 11 ж >52 >52 >52 Рис. 7.6 Рис. 7.7 184 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ 2. Все условия размещены в одной строке, тем самым задается их взаимодействие по схеме И (требуется одно­ временное их выполнение). Функция, реализующая выполнение этой задачи, за­ пишется в ячейке А8 как =BC4ETA(A1:F7; A l ; A10:D11) П р и м е р 7 .3 .В ячейке А8 подсчитать количество не­ успевающих студентов. Для соединения условий по схеме ИЛИ следует каж­ дое из них разместить в отдельной строке (рис. 7.8). А В С 13 Матем Эконом Информ 14 <53 15 <53 16 <53 Рис. 7.8 Функция базы данных для данного примера запишет­ ся как =БСЧЕТА(А1 :F7; А1; А13:С16) В критерии часто используется значение, рассчитанное по формуле. В этом случае критерий и формула должны удовлетво­ рять следующим требованиям: • формула может иметь в своем составе несколько функ­ ций и зависеть от нескольких полей списка, ее обяза­ тельным результатом является логическая величина ИСТИНА или ЛОЖБ; • ссылки в формуле могут указывать как на ячейки спи­ ска, так и на другие ячейки рабочего листа. П р и м е р 7.4. В ячейке А8определить количество сту­ дентов, имеющих баллы по информатике, превышающие средний балл. В ячейках А18, А19 введем вычисляемый критерий (рис. 7.9). 185 Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ Обратите внимание, что формула помещена под име­ 18 Среднее нем поля Среднее, не сов­ 19 =Е2>СРЗНАЧ($Е$2:$Е$7) падающим ни с одним из имен полей таблицы ВЕ­ Рис. 7.9 ДОМОСТЬ. В соответствии с требованиями по оформлению критериев указаны отно­ сительные ссылки на первую числовую ячейку Е2 поля Информ. Формула для примера в ячейке А8 запишется так: А =BC4ETA(A1:F7; А 1;А 18:А 19) Логические функции И, ИЛИ, НЕ значительно расши­ ряют возможности вычисляемых критериев. Критерии на рис. 7.7, 7.8 могут быть заменены соот­ ветственно более компактными выражениями с логически­ ми функциями, изображенными на рис. 7.10а, б. а б А 21 А Успевающие 24 22 =H(B2=">k";C2>52;D2>52;E2>52) Неуспевающие 25 =ИЛИ(С2<53;02<53;Е2<53) Рис. 7.10 В заключение еще раз подчеркнем, что логические функции относятся к вычисляемым критериям. § 7 .3 . СОРТИРОВКА И ФИЛЬТРАЦИЯ ДАННЫХ Под сортировкой понимается упорядочение записей списка в алфавитном, числовом или хронологическом по­ рядке. Сортировка может осуществляться по критерию, содержащему одно, два или три поля одновременно. Вначале сортируются записи по данным первого поля, а затем по данным второго поля, если элементы первого поля получились одинаковыми. В последнюю очередь про­ исходит сортировка по третьему полю для тех записей, у которых элементы первого и второго полей оказались 186 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ одинаковыми. При возрастающем порядке сортировки за­ писи будут располагаться в зависимости от данных поля: • числа сортируются от наименьшего к большему; • значение даты и времени сортируется от наиболее ран­ него до наиболее позднего времени; • текст — в алфавитном порядке от А до Z или от А до Я. Сортировка списка для выделенного поля выполняет­ ся по команде Данные, Сортировка или с помощью кно­ пок панели инструментов. Фильтрация применяется в тех случаях, когда необ­ ходимо из общего списка выбрать и отобразить только те записи, которые удовлетворяют заданным условиям вы­ бора. Excel предоставляет пользователю два способа фильт­ рации: с помощью автофильтра и расширенного фильтра. Первый способ применяется тогда, когда требуется от­ фильтровать данные с заданием одного или двух простых условий отбора (обычно равенства или неравенства). Второй способ рекомендуется использовать в тех слу­ чаях, когда: • условие отбора должно одновременно применяться к данным двух или более столбцов; • используются формулы и функции в условии отбора. Автофильтр запускается командой Данные, Фильтр, Автофильтр. В каждом столбце появляются кнопки со спи­ сками условий отбора: Все, Первые 10, Условие. Наиболь­ шими возможностями обладает критерий Условие, позво­ ляющий формировать до двух условий, использующих операторы сравнения (<, >, >=, < =, =). Применение расширенного фильтра требует задания условий в отдельном диапазоне ячеек текущего рабочего листа, который называется диапазоном условий. Рекомен­ дуется отделить диапазон условий от исходного списка не менее чем одной строкой (столбцом). Порядок формирова­ ния диапазона условий такой же, как и критерия для функ­ ций баз данных. Рассмотрим ряд примеров. П р и м е р 7.5. Из таблицы СЕССИЯ получить записи с успевающими студентами. Диапазон условий для этой за­ дачи имеет вид, представленный на рис. 7.7. Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ 187 Аналогичным образом выглядят диапазоны условий, обеспечивающие получение записей с неуспевающими студентами (рис. 7.8); со студентами, имеющими баллы по информатике, превышающие средний балл (рис. 7.9), а также диапазоны условий, использующие логические функции (рис. 7.10а, б). § 7 .4 . ПОДВЕДЕНИЕ ИТОГОВ При подведении итогов используются функции Итоги из меню Данные и инструменты Консолидация и Сводные таблицы. Под подведением итогов понимается вычисле­ ние или определение результата на специально организо­ ванных данных с помощью следующих функций: Сумма — сумма числового поля. Количество значений — число непустых строк поля. Среднее — среднее арифметическое чисел. Максимум — максимальное значение числа в группе. Минимум — минимальное значение числа в группе. Количество чисел — количество строк, содержащих числовые данные. 7.4.1. И С П О Л Ь З О В А Н И Е Ф У Н К Ц И И «ИТОГИ» Данная функция позволяет выполнить анализ сводных показателей для групп данных, объединенных каким-либо общим признаком, по которому необходимо предваритель­ но отсортировать данные. Предположим, что в отсортированной по полю Пред­ мет таблице на рис. 7.11а требуется вычислить средние бал­ лы по математике и экономике. Командой Данные вызы­ вается диалоговое окно «Промежуточные итоги», в кото­ ром делаются следующие установки: 1) указывается поле Предмет, в котором группируют­ ся элементы по признакам Матем и Эконом; 2) выбирается итоговая операция — Среднее; 3) указывается поле Балл, элементы которого подле­ жат усреднению. Результаты перечисленных действий показаны на рис. 7.116. Теперь вычислим средние баллы, полученные Ивановым, Петровым и Семиным. 188 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ а б А В С А В С 1 ФИО Предмет Балл 1 ФИО Предмет Балл 2 Иванов Матем 96 2 Иванов Матем 96 3 Петров Матем 72 3 Петров Матем 72 4 Сёмин Матем 40 4 Сёмин Матем 40 5 Иванов Эконом 94 5 6 Петров Эконом 80 6 Иванов Эконом 94 7 Сёмин Эконом 90 7 Петров Эконом 80 8 Сёмин Эконом 90 Рис. 7.11 Матем среднее 69,3 9 Эконом среднее 88 10 Общее среднее 78,7 А В С 1 ФИО Предмет Балл 96 2 Иванов Матем 96 Эконом 94 3 Иванов Эконом 94 Петров Матем 72 4 5 Петров Эконом 80 5 Петров Матем 72 6 Сёмин Матем 40 6 Петров Эконом 80 7 Сёмин Эконом 90 7 А В С 1 ФИО Предмет Балл 2 Иванов Матем 3 Иванов 4 Рис. 7.12 Иванов среднее Петров среднее 95 76 8 Сёмин Матем 40 9 Сёмин Эконом 90 10 Сёмин среднее 65 11 Общее среднее 78,7 В столбце ФИО проводится сортировка, дающая табли­ цу на рис. 7.12а. Для данного примера в окне «Промежуточные ито­ ги» выбираются: 1) поле ФИО для группировки данных по признакам «Иванов», «Петров», «Семин»; 2) итоговая операция — Среднее; 3) поле Балл для усреднения его элементов. Глава 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ 189 7.4.2. К О Н С О Л И Д А Ц И Я Д А Н Н Ы Х Инструмент Консолидация позволяет объединить од­ нотипные данные таблиц, находящиеся в разных местах и даже в разных листах и книгах. Итоговая таблица будет содержать только одну строку с ключевым полем, а дан­ ные в ней будут результатом применения одной из пере­ численных итоговых сумм. Ключевым считается самое левое поле (столбец) таблицы или ее выделенной части. Консолидация может быть применена и к одной таблице. В качестве примера консолидации данных одной таб­ лицы на рис. 7.11а вычислим средние баллы по математи­ ке и экономике. Предварительно между строками 1 -3 и 4 -6 , содержащими элементы Матем и Эконом, надо вста­ вить пустую строку. Затем в диалоговом окне «Консоли­ дация», вызываемом одноименной командой, задается диапазон кон­ Предмет Балл солидации В1:С8, охватывающий Матем 69,3 два смежных поля Предмет, Балл Эконом 88 с учетом пустой строки, и итоговая функция — Среднее. Выведенный Рис. 7.13 на отдельном листе результат кон­ солидации показан на рис. 7.13. Если путем копирования и перемещения сделать смеж­ ными поля ФИО и Балл, то аналогичным образом можно вычислить средние баллы Иванова, Петрова и Семина. 7.4.3. СВО Д Н А Я Т А Б Л И Ц А Инструмент Сводная таблица из меню Данные явля­ ется очень удобным и мощным средством анализа и пре­ образования данных. С его помощью можно провести лю­ бое разбиение таблицы с целью получения значений ито­ говых функций для произвольной группы данных. Сводная таблица во многом объединяет возможности таких инст­ рументов, как Итоги и Консолидация. Сводная таблица предоставляет возможность создавать некоторое количество страниц, равное числу параметров выбранного поля исходной таблицы. На каждой странице формируются заголовки строк, заголовки столбцов и дан­ ные таблицы. Последние затем подвергаются обработке 190 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Рис. 7.14 с помощью выбранной итоговой функции. Для построения сводных таблиц в Excel используется Мастер сводных таб­ лиц. Опишем кратко работу Мастера, позволяющего за несколько шагов для Иванова (страница 1), Петрова (стра­ ница 2), Семина (страница 3) и для всех (страница 4) полу­ чить сводные таблицы со средними баллами по математи­ ке и экономике. На первых двух шагах указываются источники дан­ ных — список M icrosoft Excel и диапазон его рассмотре­ ния А1:С7 (рис. 7.14). На третьем шаге предлагается определить структуру сводной таблицы. В левой части фрагмента макета окна находятся струк­ турные элементы сводных таблиц Страница, Столбец, Строка и Данные, в которые мышью переносятся кноп­ ки — названия полей: ФИО, Предмет и Балл (это показа­ но стрелками). В структурном элементе Данные устанав­ ливается итоговая функция Среднее, и после выбора места расположения результата получаем сводную таблицу, изо­ браженную на рис. 7.15. Щелчком на кнопке в строке (Все) можно открыть спи­ сок, выбрать в нем фамилии студентов, отображая в свод­ ной таблице их средние баллы по математике и экономике. ФИО (Все) V Среднее по полю Балл Предмет V Матем Эконом Общий итог 69,3 88 78,7 Рис. 7.15 ГЛАВА ВОСЬМАЯ БАЗЫ ДАННЫХ § 8 .1 . ОСНОВНЫЕ ПОНЯТИЯ БАЗ ДАННЫХ Основные идеи информационной технологии основы­ ваются на концепции баз данных (БД), в которых данные должны адекватно отображать реальный мир и удовлетво­ рять информационным потребностям пользователей. База данных в широком смысле слова — это совокуп­ ность сведений о конкретных объектах реального мира в какой-либо предметной области. Под предметной областью подразумевается часть ре­ ального мира, подлежащего изучению и использованию для решения различных практических задач. БД представляют собой разновидность информацион­ ной модели, для которой определены такие понятия, как информационный объект, реквизит, отношения и связи. Информационным объектом называется описание ре­ ального объекта, процесса или явления в виде совокупно­ сти его характеристик, называемых реквизитами. Инфор­ мационный объект однозначно идентифицируется именем и заданием ключевого реквизита (ключа). Остальные ре­ квизиты в информационных объектах являются описа­ тельными. П р и м е р 8.1. Информационный объект СТУДЕНТ име­ ет реквизиты: номер (номер зачетной книжки — ключе­ вой реквизит), фамилия, имя, отчество, дата рождения, код места обучения. Информационный объект ЛИЧНОЕ ДЕЛО имеет рек­ визиты: номер студента, домашний адрес, номер аттестата о среднем образовании, семейное положение. 192 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Информационный объект МЕСТО ОБУЧЕНИЯ включа­ ет реквизиты: код (ключевой реквизит), наименование вуза, факультет, группа. Информационный объект ПРЕПОДАВАТЕЛЬ: код (клю­ чевой реквизит), кафедра, фамилия, имя, отчество, уче­ ная степень, ученое звание, должность. Отношения, существующие между реальными объек­ тами, определяются в информационных моделях как свя­ зи. Существует три вида связей: один к одному (1 : 1),один ко многим (1 : со) и многие ко многим (оо : со). Связь один к одному определяет соответствие одному информационному объекту X не более одного информаци­ онного объекта Y и наоборот. П р и м е р 8 . 2. Информационные объекты СТУДЕНТ и ЛИЧНОЕ ДЕЛО будут связаны отношением один к одному. Каждый студент имеет определенные уникальные данные в личном деле. Связь один ко многим предполагает, что одному экзем­ пляру информационного объекта X может соответствовать любое количество информационных объектов Ух, У2, ..., Yn, но каждый объект Y,, i = 1, 2 ,..., п, связан не более чем с одним объектом X . П р и м е р 8.3. Между информационными объектами МЕСТО ОБУЧЕНИЯ и СТУДЕНТ следует установить связь один ко многим. Одно и то же место обучения может мно­ гократно повторяться для различных студентов. Связь многие ко многим предполагает соответствие ка­ ждому информационному объекту Х п j = 1, 2, ..., т, любо­ го количества экземпляров объекта Yt, i = 1, 2, ..., п, и на­ оборот. П р и м е р 8 . 4 . Информационные объекты СТУДЕНТ и ПРЕПОДАВАТЕЛЬ имеют связь многие ко многим. Каж­ дый студент обучается у множества преподавателей, а ка­ ждый преподаватель учит множество студентов. Теперь определим базу данных как информационную модель, состоящую из совокупности связанных информа­ ционных объектов в исследуемой предметной области. Ядром любой БД является модель данных, которая пред­ ставляет собой множество структур данных, ограничений 193 Глава 8. БАЗЫ ДАННЫХ 2 3 Рис. 8.1 целостности и операций манипулирования данными. С по­ мощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними. Модель данных — это совокупность структур данных и операций их обработки. Различают иерархическую, сетевую и реляционную модели данных. На рис. 8.1 показаны схемы иерархической и сетевой моделей данных, в которых связи между объектами изо­ бражены стрелками. В иерархической модели (рис. 8.1а) данные представ­ лены в виде древовидной (иерархической) структуры. Не­ посредственный доступ возможен лишь к объекту самого высокого уровня. К другим объектам доступ осуществля­ ется по связям от объекта на вершине модели. Таким обра­ зом организовано обращение к файлам в операционной системе DOS. В сетевых моделях (рис. 8.16) непосредственный дос­ туп обеспечивается к любому объекту независимо от уров­ ня его расположения в модели, а также по связям к дру­ гим объектам. Примером сетевой модели может служить совокупность БД, содержащих информацию о взаимосвя­ занных производственных цехах (справочные данные о цехах, складах и выпускаемой продукции). Обе эти моде­ ли не получили широкого распространения из-за сложно­ сти реализации графов в виде машинных структур данных, кроме того, в них сложно осуществить операции поиска информации. 194 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Наибольшее распространение получила третья модель данных — реляционная модель, описанию которой будет посвящено содержание § 8.2. В современной технологии БД предполагается, что соз­ дание БД, ее поддержка и обеспечение доступа пользова­ телей к ней осуществляется с помощью специального про­ граммного продукта, именуемого системой управления базами данных. Система управления базами данных (СУБД) — это комплекс программных и языковых средств, необходимых для создания БД, поддержания их в рабочем состоянии и организации поиска в них необходимой информации. Для организации работ в СУБД предполагается нали­ чие некоторого лица, на которое возлагаются функции ад­ министрирования данными, хранимыми в БД. § 8 .2 . РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ Понятие «реляционный» (англ. relation — отношение) связано с разработками Е. Кодда — известного специали­ ста в области БД. Реляционная модель данных ориентирована на орга­ низацию данных в виде двумерной таблицы (отношения), обладающей следующими свойствами: • каждый элемент таблицы — один элемент данных; • все столбцы в таблице однородные, т. е. все элементы в столбце имеют одинаковый тип (числовой, текстовый и т. д.) и длину; • каждый столбец имеет уникальное имя; • одинаковые строки в таблице отсутствуют; • порядок следования строк и столбцов может быть про­ извольным. Таблицу называют отношением, строки — записями, столбцы — полями, а строку заголовков — схемой отно­ шения. Для однозначного определения записей служит первич­ ный ключ, который может быть простым или составным. Простой ключ (ключевое поле) — это поле, каждое зна­ чение которого однозначно определяет запись. 195 Глава 8. БАЗЫ ДАННЫХ УСПЕВАЕМОСТЫ № зачётки Фамилия Предмет Балл Ауд Корпус 21143 Иванов Информ 97 135 А 21133 Перова Эконом 90 221 Б 22201 Сёмин Матем 40 158 А 21143 Иванов Матем 96 221 Б 21133 Перова Информ 88 158 А 22201 Сёмин Эконом 90 135 А Рис. 8.2 Составной ключ содержит несколько полей со значе­ ниями, однозначно определяющими запись. Например, схема отношения-таблицы УСПЕВАЕ­ МОСТЫ — на рис. 8.2 будет следующей: УСПЕВАЕМОСТЫ(№ зачётки, Фамилия, Предмет, Балл, Ауд, Корпус) Здесь УСПЕВАЕМОСТЫ — отношение, а № зачетки, Фамилия и т. д. — поля. На рис. 8.2 видно, что ни одно из полей не может быть ключевым, поскольку все они имеют повторяющиеся элементы, поэтому здесь используется со­ ставной ключ, содержащий поля Фамилия, Предмет. Что­ бы устранить многократное повторение данных и умень­ шить объем памяти, занимаемой БД, прибегают к норма­ лизации, которая заключается в разбиении исходных таблиц на более мелкие, руководствуясь методом нор­ мальных форм. Е. Коддом выделены три нормальные формы отношений и предложен метод, позволяющий любое отношение преоб­ разовать к третьей, самой совершенной нормальной форме. Суть метода состоит в последовательном переводе таб­ лицы из одной нормальной формы в другую, причем каж­ дая последующая устраняет определенный вид функцио­ нальной зависимости между полями таблицы. Первая нормальная форма. Отношение называется при­ веденным к первой нормальной форме, если все его атрибу­ ты неделимы. Разработчики БД изначально строят исходное отношение так, чтобы оно было в первой нормальной форме. 196 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ 6 УСПЕВАЕМОСТИ СПИСОК Фамилия Предмет Балл Ауд Корпус Иванов Информ 97 135 А 21143 Иванов Перова Эконом 90 221 Б 21133 Перова Сёмин Матем 40 158 А 22201 Сёмин Иванов Матем 96 221 Б Перова Информ 88 158 А Сёмин Эконом 90 135 А № зачётки Фамилия Рис. 8.3 Вторая нормальная форма. Для приведения отноше­ ний ко второй нормальной форме введем понятие функ­ циональной зависимости. Функциональная зависимость полей — это зависи­ мость, при которой в строке определенному значению ключевого поля соответствует только одно значение не­ ключевого поля. Функционально неключевое поле зави­ сит от составного ключа, но не зависит от любого поля, входящего в составной ключ. Например, в отношении УСПЕВАЕМОСТЫ(№ зачётки, Фамилия, Предмет, Балл, Ауд, Корпус) первичным клю­ чом является совокупность полей Фамилия, Предмет. Поля Балл, Ауд функционально полно зависят от состав­ ного ключа. Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме и каждое неклю­ чевое поле функционально полно зависит от составного клю­ ча. Например, отношение УСПЕВАЕМОСТЫ(№ зачётки, Фамилия, Предмет, Балл, Ауд, Корпус) находится в первой нормальной форме, однако оно не находится во второй нор­ мальной форме, так как поле № зачётки не имеет полной функциональной зависимости от составного ключа. Для перевода этого отношения во вторую нормальную форму необходимо исключить из него поле № зачётки, так как оно функционально зависит от поля Фамилия, а не от всех полей составного ключа Фамилия, Предмет, т. е. исход- 197 Глава 8. БАЗЫ ДАННЫХ УСПЕВАЕМОСТЬЗ МЕСТО Фамилия Предмет Балл Ауд Ауд Корпус Иванов Информ 97 135 135 А Перова Эконом 90 221 138 А Сёмин Матем 40 158 221 Б Иванов Матем 96 221 Перова Информ 88 158 Сёмин Эконом 90 135 Рис. 8.4 ное отношение необходимо разбить на два связанных по полю Фамилия отношения УСПЕВАЕМОСТЬ2{Фамилия, Предмет, Балл, Ауд, Корпус) и СПИСОК{№ зачётки, Фа­ милия), как это показано на рис. 8.3. В таблице СПИСОК ключевым может быть поле № за­ чётки или поле Фамилия, образующее простой ключ. Третья нормальная форма. Третья нормальная форма позволяет устранить транзитивную зависимость. В отноше­ нии имеет место транзитивная зависимость, если сущест­ вуют два поля, в которых первое зависит от ключа, а второе зависит от первого. Отношение находится в третьей нормаль­ ной форме, если оно находится во второй нормальной форме, и каждое неключевое поле не транзитивно зависит от ключа. Например, в отношении УСПЕВАЕМОСТЬ2{Фамилия, Предмет, Балл, Ауд, Корпус) поле Ауд зависит от составно­ го ключа Фамилия, Предмет, а поле Корпус — от поля Ауд, т. е. имеет место транзитивность. Для ее устранения отно­ шение УСПЕВАЕМОСТЬ2{Фамилия, Предмет, Балл, Ауд, Корпус) расщепляется на два отношения: УСПЕВАЕМОСТЬЗ{Фамилия, Предмет, Балл, Ауд) и МЕСТО{Ауд, Кор­ пус), изображенные на рис. 8.4а и 8.46. Связь между этими отношениями-таблицами осуществляется по полю Ауд. Процесс нормализации заканчивается созданием схе­ мы данных, в которой указываются все нормализованные таблицы с их полями и взаимосвязями между ними. Ука­ зываются типы взаимосвязей. 198 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ В нашем случае схема данных будет иметь вид СПИСОК (№ зачетки, Фамилия) i УПЕВАЕМОСТЬЗ (Фамилия, Предмет, Балл, Ауд) I---------------------- МЕСТО (Ауд, Корпус) --------------------- ' Связь по полю Фамилия между отношениями СПИСОК и УСПЕВАЕМОСТЬЗ относится к типу один ко многим (1 : со), так как одному элементу этого поля из таблицы СПИСОК (рис. 8.3б) соответствует несколько (два) элементов поля Фамилия из таблицы УСПЕВАЕМОСТЬЗ (рис. 8.4а). Ана­ логичный тип связи устанавливается по полю Ауд между отношениями МЕСТО и УСПЕВАЕМОСТЬЗ. Таблица УСПЕ­ ВАЕМОСТЬЗ называется родительской, а таблицы СПИСОК и МЕСТО — дочерними. Поля Фамилия и Ауд в таблице УС­ ПЕВАЕМОСТЬЗ являются внешними ключами, а в табли­ цах СПИСОК и МЕСТО — первичными ключами. Важным условием эффективной работы БД является обеспечение целостности ее данных. Целостность данных рассматривается на уровне таб­ лицы и на уровне межтабличных связей. В первом случае не допускается нарушение уникаль­ ности первичного ключа при добавлении данных. Требование целостности данных на уровне межтаблич­ ных связей состоит в том, что для каждого значения внеш­ него ключа главной родительской таблицы должны найтись строки в дочерней таблице с таким же значением ключа. Целостность данных обеспечивается корректным вы­ полнением транзакции. Транзакцией называется совокупность операций с БД, которые должны быть выполнены так, чтобы БД оказа­ лась в непротиворечивом состоянии, т. е. не должна быть нарушена целостность данных. Например, если в таблице УСПЕВАЕМОСТЬЗ удаляет­ ся запись с фамилией Иванов, то в связанной таблице СПИ­ СОК для сохранения непротиворечивости данных должна быть также удалена запись с этой фамилией. Анализ характеристик различных СУБД показал сле­ дующее. Существенно уступая СУБД FoxPro по произво- 199 Глава 8. БАЗЫ ДАННЫХ дительности, две СУБД: Access и Paradox for Windows — обладают гораздо лучшими возможностями обеспечения целостности и безопасности данных. Эти показатели не­ сколько лучше у СУБД Access, поэтому основное внима­ ние в последующем материале будет уделено изучению ос­ нов работы в СУБД Access. В качестве основных этапов обобщенной работы в лю­ бой СУБД можно выделить следующие: • построение таблиц базы данных; • сортировка, поиск и фильтрация данных; • создание запросов к базе данных; • формирование и вывод отчета. § 8.3. ПОСТРОЕНИЕ ТАБЛИЦ БАЗЫ ДАННЫХ Для построения и последующей обработки в СУБД A c­ cess предлагаются три нормализованные таблицы (отно­ шения) СЕССИЯ, АНКЕТА и СТИПЕНДИЯ, изображенные на рис. 8.5а, 8.6а, 8.7а. Соответствующие схемы отноше­ ний на рис. 8.5б, 8.66, 8.7б представляют собой списки по­ лей, размещенных в отдельных столбцах. Выделенные жирным шрифтом поля являются ключевыми и представ­ ляют собой простые ключи. Таблица-отношение СЕССИЯ содержит поля Матем, Эконом, Информ с баллами, соответствующими отлич­ ной (балл выше 92), хорошей (балл в пределах от 80 до 92), удовлетворительной (балл в пределах от 53 до 79) и б СЕССИЯ Фамилия Пол Матем Эконом Информ Оценка Ежова ж 66 50 83 УДО Иванов м 96 94 97 ОТЛ Перова ж 85 90 88 ХОР Петров м 72 80 95 УДО Сёмин м 40 90 70 УДО Серова ж 82 91 96 ХОТ Р и с. 8.5 ggggg! Фамимн Пол Матем Эконом Информ Оценка 200 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ АНКЕТА Фамилия № зачётки Дата рождения Группа Ежова 21125 12.05.1983 ЭУ1 Иванов 21143 20.10.1984 ЭУ2 Перова 21133 16.08.1981 ЭУ1 Петров 21045 11.08.1982 ЭУ2 Сёмин 22201 24.09.1983 ЭУ2 Серова 22177 03.11.1979 ЭУ1 Ф аиитя № зачётки Дата рождения Группа Рис. 8.6 СТИПЕНДИЯ Оценка Размер ОТЛ 1000 УДО ХОР 600 ХОТ 800 Рис. 8.7 неудовлетворительной (балл ниже 53) оценкам по предме­ там «Математика», «Экономика», «Информатика». В качестве ключевого выбрано поле Фамилия. Поле Оценка содержит общие лингвистические оценки студен­ тов по всем предметам: ОТЛ — все оценки отличные; ХОТ — имеются хорошие и отличные оценки; ХОР — все хорошие оценки; УДО — имеются неудовлетворительные или/и удов­ летворительные оценки. В таблице АНКЕТА поле Фамилия выбрано в качестве первичного ключа, с помощью которого можно обеспечить связь с таблицей СЕССИЯ. В отношении СТИПЕНДИЯ поле Оценка является первич­ ным ключом, а в отношении СЕССИЯ — внешним ключом. Два отношения АНКЕТА и СТИПЕНДИЯ можно связать отношением СЕССИЯ, в котором поля Фамилия и Оценка представляют собой внешние ключи, являющиеся первич­ ными ключами отношений АНКЕТА, СТИПЕНДИЯ (рис. 8.8). 201 Глава 8. БАЗЫ ДАННЫХ АНКЕТА Фамимя Пол Ф а ття Матем № зачётки Эконом Информ Дата рождения Группа ” Оценка 3 tmuin.i Оценка т j Размер А d Р ис. 8.8 Проанализируем связи отношений. Таблицы АНКЕТА и СЕССИЯ имеют связь один к одному (1 : 1), поскольку каждой записи первой таблицы соответствует не более од­ ной записи второй таблицы и наоборот. Между таблицами СТИПЕНДИЯ и СЕССИЯ устанавли­ вается связь один ко многим (1 : со). В данном случае пер­ вичный ключ Оценка таблицы СТИПЕНДИЯ связывается с внешним ключом таблицы СЕССИЯ. При этом каждой записи таблицы СТИПЕНДИЯ соответствует несколько за­ писей таблицы СЕССИЯ. Введем понятие родительского и дочернего отношения-таблицы. Таблица СЕССИЯ является родительской по отноше­ нию к таблицам АНКЕТА и СТИПЕНДИЯ потому, что она связана с ними через внешние ключи. В свою очередь, таб­ лицы АНКЕТА и СТИПЕНДИЯ называются дочерними. Сразу после запуска Access в диалоговом окне Microsoft Access предлагается создать новую БД, запустить мастер по созданию БД или открыть существующую БД. Пусть пере­ ключатель поставлен в положение Новая база данных. На экране появляется окно базы данных (см. рис. 8.9), содер­ жащее б основных окон, вызываемых кнопками, из назва­ ния которых ясно, с какими объектами предстоит иметь дело. Таблицы создаются пользователем для одного и не­ скольких наборов данных из предметной области. Запросы формируются пользователем для выборки нуж­ ных данных из одной или нескольких связанных таблиц. Формы, служат для ввода, просмотра и корректировки БД в удобном виде, соответствующем привычному доку­ менту. Формы также могут использоваться для создания панелей управления в приложении пользователя. 202 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ JnJili §р Рисунки к главе 8 : база данных Открыть ^ Конструктор ур Создать о X £ оГ ь—ь- rfff Создание таблицы в режиме конструктора Объекты Ш _ Создание таблицы с помощью мастера Таблицы Создание таблицы путем ввода данных Запросы АНКЕТА Формы i5 а Отчеты 11 СЕССИЯ Страницы т рМакросы 1 АНКЕТА1 СТАРОСТА СТИПЕНДИЯ Модули Группы Рис. 8.9 Отчеты предназначены для формирования выходно­ го документа, который следует вывести на печать. Страницы, осуществляют связь переданной W eb-страницы с базой данных, находящейся в сервере. Макросы содержат описание действий, которые долж­ ны быть выполнены в ответ на некоторое событие. Каждое действие реализуется макрокомандой. Выбор макрокоманд и задание параметров, используемых ими при выполнении, является достаточно простой задачей. Макрос позволяет объединить разрозненные операции обработки данных в приложении. Модули содержат программы на языке Visual Basic for Application (VBA), разрабатываемые пользователем для реа­ лизации нестандартных процедур при создании приложений. Для построения таблицы нужно установить вкладку Таблица и нажать кнопку Создать. Откроется диалоговое окно Новая таблица, в котором предлагаются три способа создания таблицы: Режим таблицы, Конструктор и М ас­ тер таблицы. Рассмотрим первые два способа, используя данные таблиц СЕССИЯ (рис. 8.5а) и АНКЕТА (рис. 8.6а). 203 Глава 8. БАЗЫ ДАННЫХ Поле1 Поле2 ПолеЗ Поле4 Полеб Полеб Рис. 8.10 Режим таблицы. При выборе этого режима на экране появляется заготовка таблицы (рис. 8.10), в которой поль­ зователь удаляет имена полей Поле1, Поле2, ПолеЗ и т. д., заменяет их на новые (Фамилия, Пол, Матем, Эконом, Информ, Оценка) и вводит в пустые ячейки необходимую информацию. Ввод и перемещение данных по ячейкам таб­ лицы выполняются так же, как и в Excel. Сохраняется по­ лученная таблица командой Файл, Сохранить с последую­ щим вводом имени таблицы, которое затем отображается на вкладке Таблицы диалогового окна БД (рис. 8.9). Режим конст рукт ора. Он наиболее предпочтителен для эффективной работы в СУБД. Если выбрать опцию Конструктор в диалоговом окне Новая таблица, то на эк­ ране появляется окно конструктора таблицы АНКЕТА, представленное на рис. 8.11. Для создания таблицы нужно описать поля, т. е. запол­ нить как минимум две графы: Имя поля, Тип данных. Гра­ фа Описание не является обязательной, она предназначе­ на для подсказки. В нашем случае описание полей табли­ цы АНКЕТА будет иметь вид, приведенный на рис. 8.11. После ввода типа данных поля задают свойства поля на вкладке Общие. Дадим краткое описание тех свойств, которые чаще всего нуждаются в задании. Размер поля — максимальное количество символов, которое содержат текстовые данные поля. Для числовых данных свойство Размер поля имеет сле­ дующие характеристики: • с плавающей точкой (8 байт) — 15 десятичных знаков; • с плавающей точкой (4 байта) — 7 десятичных знаков; • длинное целое (4 байта) — 10 десятичных знаков; • целое (2 байта) — о т -3 2 768 до 32 767; 204 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ I Ш АНКЕТА : таблица Имя поля l i Фамилия _ № зачётки Дата рождения Группа -| П | х | Тип данных Текстовый Числовой Дата/время Текстовый Описание! *1 _| _iJ Свойства поля Общие | Подстановка ] Размер поля Формат поля Маска ввода Подпись Значение по умолчанию Условие на значение Сообщение об ошибке Обязательное поле Пустые строки Индексированное поле Сжатие Юникод 50 Нет Нет Да (Совпадения не допускаюто Нет Рис. 8.11 • байт — от 0 до 255; • денежный (4 байта) — 15 знаков до запятой и 4 знака после нее. Формат поля — спускающийся список операторов, ко­ торые могут быть применены к данному типу поля. Опишем наиболее употребительные форматы для двух типов данных: • числовой — основной, денежный, фиксированный, с разделителем разрядов, процентный; • дата/время — краткий, средний и длинный форматы даты и времени. Значение по умолчанию. Заданные в этом свойстве дан­ ные будут появляться во всех случаях, а в некоторых из них возможна замена этих данных. Обязательное поле. Устанавливается Да или Нет, что­ бы сообщить Access, можно или нет пользователю оста­ вить поле пустым при вводе новой записи. Глава 8. БАЗЫ ДАННЫХ 205 Программе Access также необходимо сообщить, какое из полей предлагается использовать в качестве ключево­ го. В нашем случае ключевым будет поле Фамилия. В ре­ зультате проделанной работы на экране появляется табли­ ца с полями Фамилия, № зачетной книжки, Дата рожде­ ния, Группа, предназначенная для ввода данных. § 8 .4 . СОРТИРОВКА, ПОИСК И ФИЛЬТРАЦИЯ ДАННЫХ Обработку данных можно осуществлять непосредствен­ но в режиме таблицы. Использование режима таблицы — это самый простой способ изменения и поиска данных. Под изменением понимается копирование, обновление, удале­ ние, добавление и сортировка данных в таблице. Поиск данных, помимо традиционной процедуры нахождения нужной информации, включает и фильтрацию. Режим таблицы- устанавливается следующим образом. В окне Таблицы базы данных выделяется имя таблицы и нажимается кнопка Открыть. Используя команды из меню Формат, можно выполнять форматирование табли­ цы: изменять высоту строк и ширину столбцов, перестав­ лять или убирать с экрана столбцы, применять другой шрифт, скрывать или выводить линии сетки. Команды, находящиеся в меню, позволяют добавить новую запись, изменить, заменить, копировать, вставить и находить нуж­ ные данные. Простейший способ сортировки состоит в следующем. В нужном столбце щелчком выделяется любой элемент и нажимается кнопка панели инструментов Сортировка по возрастанию или Сортировка по убыванию. Другой вид сортировки совмещен с операцией фильтрации. Фильтрация — это отбор записей, удовлетворяющих принятому критерию. Фильтрация производится с помо­ щью трех фильтров: фильтр во выделенному, обычный фильтр, расширенный фильтр. Фильтр по выделенному обеспечивает самую простую фильтрацию, критерием которой является значение выде­ ленной ячейки. Например, если в поле Группа таблицы АН­ КЕТА выделить ячейку со значением «ЭУ1», то, применяя 206 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ данный фильтр, получим записи, содержащие информа­ цию о группе ЭУ1. Команда Записи, Изменить фильтр дает возможность перейти к формированию условий отбора в окне обычно­ го фильтра. С его помощ ью можно формировать более сложные критерии отбора, использующие логические функции И, ИЛИ и операции отношения (больше, мень­ ше и т. д.). Гораздо большими возможностями обладает расширен­ ный фильтр. Он запускается командой Записи, Фильтр, Расширенный фильтр. Расширенный фильтр во многом напоминает бланк запроса, но по сравнению с последним имеет ряд недостатков. Расширенный фильтр может рабо­ тать только с одной таблицей и не сохраняет свою форму после завершения работы. § 8 .5 . СОЗДАНИЕ ЗАПРОСОВ Под запросом понимается операция отбора данных из одной или нескольких таблиц. В Access имеется удобное для пользователя графическое средство формирования за­ проса по образцу QBE (Query By Example), а также язык структурированных запросов SQL (Structured Query Lan­ guage). Приведем основные типы запросов. • запросы на выборку — выбираются записи, удовлетво­ ряющие условиям отбора; • запросы на создание таблицы — основаны на запросевыборке, но, в отличие от него, результат запроса со­ храняется в новой таблице; • запросы на обновление, добавление, удаление — это за­ просы-действия, в результате выполнения которых из­ меняются данные в таблицах. Для создания запросов надо выбрать вкладку Запросы. окна базы данных, а затем щелкнуть на кнопке Создать. Появится диалоговое окно Новый запрос, предостав­ ляющее возможность вызвать Мастер простого и перекре­ стного запроса, выборку повторяющихся записей, а также Конструктор запросов. Простой и перекрестный запросы, а также выборка повторяющихся записей применяются 207 Глава 8. БАЗЫ ДАННЫХ довольно редко, поэтому основное внимание сосредоточим на Конструкторе запросов, содержащем бланк для форми­ рования запроса по образцу QBE. 8.5.1. СРЕДСТВА СОЗДАНИЯ ЗАПРОСОВ Конструктор запросов запускается следующим обра­ зом. В окне Запросы нажимается кнопка Создать, чтобы открыть диалоговое окно Новый запрос. В этом окне вы­ деляется опция Конструктор, в появившемся окне Добав­ ление таблицы из списка выбирается нужная таблица и нажимается кнопка Добавить. Подобные действия, при­ мененные к таблице СЕССИЯ, выводят на экран окно кон­ структора запросов, представленное на рис. 8.12. Окно конструктора запросов разделено на две панели. Верхняя панель содержит схему данных запроса, ко­ торая включает список полей выбранной для запроса таб­ лицы СЕССИЯ. Нижняя панель называется бланком запроса по образ­ цу (QBE) или просто бланком запроса. Каждый столбец блан­ ка запроса соответствует одному полю таблицы, которое аЩИ К о н с тр у кто р за п р о с о в : за п р о с на выб_ Е СЕ С Ф аннтя 3 Пол Ц I Матем Э коном Информ Поле: Имя таблицы: Сортировка: Вывод на экран: Условие отбора: или: Рис. 8.12 1 К] 208 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ участвует в запросе. При заполнении бланка запроса необ­ ходимо в строках: • Полет Имя таблицы — включить соответственно име­ на полей и таблиц, используемых в запросе; • Сортировка — указать порядок сортировки (по убыва­ нию или возрастанию) записей результата; • Вывод на экран — отметить поля, которые должны быть включены в результирующую таблицу; • Условие отбора — ввести арифметические или логи­ ческие формулы для отбора записей; • Или — реализовать взаимодействие между полями по логической схеме ИЛИ. Остановимся на выражениях, которые записываются в строку Условия отбора. Они могут состоять из литера­ лов, операторов, констант, идентификаторов, функций. Литерал — это число, символьная константа, назва­ ние поля или дата, вводимые в поля таблицы. Литерал типа Число вводится без ограничителя, типа Дата имеет огра­ ничитель # (# 1 2 .1 1 .9 8 # ), а типа Символьная констан­ та — ограничитель кавычки (" ) или апострофы ( ' ) ( " Ива­ нов", ' Петров ' ). Литералы типа Название поля заключа­ ются в квадратные скобки ([ ]). Оператор указывает действие, которое должно быть выполнено с элементами полей. Имеются следующие груп­ пы операторов: • арифметические: * (умножение), + (сложение), - (вы­ читание), / (деление), " (возведение в степень); • соединения частей текста: &, например ' Юрий ' & ' "И ванов'; • сравнения: < (меньше), <= (меньше или равно), > (боль­ ше), > = (больше или равно), = (равно), < > (не равно); • операторы SQL: Like, Between... And, In. Оператор Like содержит специальные символы (?, *, # ) и маски, необходимые для определения строк с неизвест­ ными символами. Символ ? обозначает любой одиночный символ. Напри­ мер, если неизвестно, как написать: Carl или Karl, то усло­ вие можно задать как Like "?ar 1 ". Символ * обозначает последовательность символов. Глава 8. БАЗЫ ДАННЫХ 209 Символ # обозначает любую неизвестную цифру. Оператор Between... And заменяет знаки «больше или рав­ но» и «меньше или равно». Например, условие Be tween 1981 And 1994 эквивалентно условию >= 1981 And <= 1994. Оператор In позволяет использовать списки значений. Например, выражение In ("Иванов И.П.", "Петров Ю. И. ") позволяет отобрать записи с указанными фамилия­ ми и инициалами. Идентификатор — это имя поля, заключенное в квад­ ратные скобки. Например, [Оценка] относится к полю Оценка таблицы СЕССИЯ. Функция — это имя специальной программы, предна­ значенной для выполнения групповой операции — группи­ ровки — для любого поля бланка запросов. Под группиров­ кой будем понимать операцию над совокупностью данных одинакового типа одного поля с помощью какой-либо функ­ ции. Перечислим наиболее употребительные функции: Sum — вычисляет сумму значений поля в каждой группе; Avg — вычисляет среднее арифметическое всех значе­ ний поля в каждой группе; Count — подсчитывает число записей поля в каждой группе; Min — находит наименьшее значение поля внутри ка­ ждой группы; Мах — находит наибольшее значение поля внутри ка­ ждой группы. Для включения полей из таблиц в соответствующие столбцы запроса достаточно перетащить эти поля из спи­ ска полей таблицы в схеме данных или выбрать из списка в строке Поле бланка запроса. Рассмотрим примеры заполнения бланка запроса для основных видов запросов. 8.5.2. ЗАПРОСЫ НА ВЫБОРКУ Приведем примеры заполнения бланков запросов, вы­ полняющих некоторые задачи отбора. П р и м е р 8 .5 .В таблице АНКЕТА выбрать записи груп­ пы ЭУ1 (см. рис. 8.13). 210 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Поле: Фамилия Имя таблицы: АНКЕТА Сортировк-а: Вывод на экран: и Условие отбора: или: МФ зачетки АНКЕТА и Лата рождения АНКЕТА Группа АНКЕТА “ЭУГ □ Рис. 8.13 П р и м е р 8 .6 .В таблице АНКЕТА выбрать записи с ин­ формацией о студентах Иванове и Сёмине. Для этого необ­ ходимо в строке или и следующей строке столбца Фами­ лия расположить фамилии "Иванов" и "Сёмин" или в стро­ ке Условия отбора записать выражение "Иванов" Or "Сёмин", реализующее логическое условие ИЛИ (рис. 8.14). Поле: Фамилия N? зачётки Имя таблицы; АНКЕТА АНКЕТА Сортировка: Вывод на экран; и Условие отбора: "Иванов" Or "Сёмин1" или: Дата рождения АНКЕТА Группа АНКЕТА — ■w Рис. 8.14 П р и м е р 8.7. Из таблицы АНКЕТА вывести информа­ цию о студентах моложе 1981 года рождения. Для этого надо записать условие = > #01.01.1982# в поле Дата Рож­ дения (рис. 8.15). Поле: Фамилия v‘ № замётки Имя таблицы; АНКЕТА АНКЕТА Сортировка: Вьвод на экран : Условие отбора: или: * Лата рождения АНКЕТА й >#01.01.1982# г руппа АНКЕТА I т. Рис. 8.15 П р и м е р 8.8. Чтобы в таблице СЕССИЯ упорядочить в алфавитном порядке записи со студентами мужского пола (рис. 8.16), следует соответственно заполнить строки пер­ вого (Поле — Фамилия, Сортировка — По возрастанию) и второго (Поле — Пол, Условие отбора — "м") столбца. 211 Глава 8. БАЗЫ ДАННЫХ Поле: Фамилия » Пол Имя Т&бЛицы: СЕССИЯ СЕССИЯ Сортировка: по восстанию вывод на экран; У Условие отбора: V Матем СЕССИЯ Эконом СЕССИЯ Информ СЕССИЯ Оценка СЕССИЯ vi 1 — У или: • Рис. 8.16 П р и м е р 8.9. Чтобы в таблице СЕССИЯ выбрать фа­ милии отличников во всех трех столбцах (Матем, Эконом, Информ), критерий отбора (> 92) следует расположить в одной строке Условие отбора, тем самым реализуя между этими полями логическую операцию И (рис. 8.17). I_________________________________________________________I Поле: Фамилия Имя таблицы: СЕССИЯ Сортировка; Вывод на экран: а Условие отбора: или: Матем СЕССИЯ Эконом СЕССИЯ □ >92 Информ 'г СЕССИЯ □ >92 □ >92 Рис. 8.17 П р и м е р 8.10. Для получения из таблицы СЕССИЯ фамилий неуспевающих студентов условия отбора следу­ ет расположить в разных строках столбцов Матем, Эко­ ном, Информ, начиная со строки или (рис. 8.18). Поле: Фамилия Имя таблицы: СЕССИЯ Сортировка: Вывод на экран: Условие отбора: или: Матем СЕССИЯ Эконом СЕССИЯ □ Информ СЕССИЯ □ □ <53 <53 <53 Т —1 Рис. 8.18 В отличие от расширенного фильтра, в бланке запроса требуется дополнительно указывать во всех столбцах имя таблицы и устанавливать флажок Вывод на экран, чтобы вывести все поля новой таблицы. Полученный результат 212 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ сохраняется в окне Запросы окна базы данных. Значитель­ ный интерес представляет запрос, сопровождающийся вычислениями содержимого полей. Результат вычисле­ ния образует поле в таблице, создаваемой по запросу. При вычислениях могут использоваться арифметические вы­ ражения и встроенные функции Access. Вычисляемое выражение вводится в пустую ячейку строки Поле таблицы QBE. Имя вычисляемого поля за­ писывается перед выражением и отделяется от него двое­ точием. П р и м е р 8 .1 1 .В таблице СЕССИЯ вычислить средние баллы студентов в дополнительном поле Средний. На рис. 8.19 приводится бланк запроса с вычисляемым полем. В дополнительном столбце бланка запроса в строке Поле напечатано выражение Средний: (([М а т е м ] + [Эконом] + [И н ф о р м ])/3 , в котором Средний — название вычисляемого поля, а выражение, следующее за двоеточием, — формула для вычисления среднего. В этой формуле в квадратные скобки заключены заголовки полей таблицы, участвующ их в — Поле; Имя таблицы; Сортировка: Вывод ма экран: Условие отбора: или: Фамилия Ч Средний: <([Матем1+ГЭконом]+ГИн6орм])/3) СЕССИЯ а б Фамилия ► Ежова Иванов Перова Петров Сёмин Серова Средний 66,333333333 95,666666667 87,66666666782,333333333 66,666666667 89,666666667 К .Ч Запись и | 1 _ llL Рис. 8.19 ’ Глава 8. БАЗЫ ДАННЫХ 213 вычислении среднего. Получаемая при таком запросе таблица показана на рис. 8.195. В дополнительном столбце можно так же, как и в Ex­ cel, установить стипендию, например: • 300 руб., если средний балл выше 92; • 200 руб., если средний балл в пределах от 80 до 92; • 0, в остальных случаях. Для этого в Access воспользуемся функцией Ilf, анало­ гичной функции ЕСЛИ из Excel. В строке Поле дополнительного столбца требуется за­ писать следующее выражение: С типен дия: I l f ( ( [М атем ]+ [Э к он ом ]+ [Информ]) / 3 > 9 2 ;3 0 0 , I l f ( ( [М атем ]+ [Э к он ом ]+ [Информ]) / 3 > 8 0 ; 2 0 0 ;0 ) ) ) 8.6.3. ИТОГОВЫЕ ЗАПРОСЫ Итоговые запросы позволяют вычислить или опреде­ лить с помощью функций Sum, Avg, Count, Min, Max зна­ чения по группам данных. Для нахождения итоговых зна­ чений надо нажать кнопку Групповые операции RH на па­ нели инструментов, чтобы в бланке запроса появилась строка Групповая операция, которая, помимо функций, со­ держит установки: Условие — для ввода условия в строку Условие отбора; Выражение — для ввода математических выражений в строку Поле, в которых используются одна или несколь­ ко итоговых функций. Приведем пример составления ито­ гового запроса. П р и м е р 8.12. В таблице СЕССИЯ определить коли­ чество студенток. Реализация этого запроса приводится на рис. 8.20а. При таком запросе к таблице СЕССИЯ ответом будет одна строка данных, приведенных на рис. 8.206. 8.5.4. МНОГОТАБЛИЧНЫЕ ЗАПРОСЫ Часто требуется из нескольких таблиц получать дан­ ные одновременно, выполнять многотабличные запросы. В этом случае таблицы, содержащие необходимые данные, должны быть связаны с помощью ключевых полей. 214 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Поле: Имя таблицы: Групповая операция: Сортировка: Выест ма экран: Условие отбора: или: — * Пол СЕССИЯ Count Пол СЕССИЯ г руппироека □ □ "ж" | . * б Пол ► !ж СоипЫ1ол 3 П р и м е р 8 .1 3 . Вывести фамилии студенток группы ЭУ1 и размер начисленной им стипендии. Для получения этой информации требуются три таблицы: АНКЕТА, СЕС­ СИЯ и СТИПЕНДИЯ, которые следует связать по схеме, представленной на рис. 8.8. В окне конструктора схема связей и бланк запроса бу­ дут иметь вид, показанный на рис. 8.21. П р и м е р 8 .1 4 . Определить суммарный размер стипен­ дии, получаемой студентками группы ЭУ1. На рис. 8.22 приводится бланк запроса, реализующего решение постав­ ленной задачи. gjjjfl Пример 8_9 : запрос на выборку ]С]_х 1СЕССИЯ Фа»иия Фмиия [стип _ll Оценка Размер Ппп № зачетки Дата розден! Группа Матем 3 Эконом Информ ▼ О ценка и Поле: Имя таблицы: С ортировка: Вывод на экран: Условие отбора: — Фамилия СЕССИЯ Пол СЕССИЯ Рис. 8.21 Размер СТИПЕНДИЯ Группа АНКЕТА "Э У Г — 215 Глава 8. БАЗЫ ДАННЫХ Поле; Лмя таблицы: Г рупповая операция: Пол СЕССИЯ Г руппнровка Размер СТИПЕНДИЯ Sum Г руппа АНКЕТА Г руппи ровка Сортировка: Бызод на экран: и □ и Условие отбора: “ЭУ1" Id ИЛИ! Р и с. 8.22 8.5.5. СОЗДАНИЕ SQL-ЗАПРОСОВ Язык SQL — это наиболее распространенный приклад­ ной язык управления реляционными базами данных ар­ хитектуры клиент/сервер. SQL содержит набор из шести групп стандартных команд: 1) описание данных; 2) запрос данных; 3) манипулирование данными; 4) управление кур­ сором; 5) обработка транзакций; 6) администрирование и контроль. Ограничимся первыми тремя группами команд. Запро­ сы из примера 8.5 можно преобразовать в SQL-запросы, используя шесть команд: • SELE C T — список полей, подлежащих выводу; • FROM — имена таблиц; • WHERE — условия отбора; • GROUP BY — условия группировки; • H AVING — условия для результата; • ORDER BY — имя сортируемого столбца [ACS |DESC]. Здесь [ACS |DESC] — указание на то, что сортировка может проводиться по возрастанию (ACS) или по убыва­ нию (DESC). 216 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Опишем более подробно операторы SQL-запроса для примера 8.5 (рис. 8.13): SELECT АНКЕТА.Фамилия, АНКЕТА.[№ з а ч ё т к и ] , АНКЕТА.Группа FROM АНКЕТА WHERE ( ( (А Н К Е Т А .Группа)="Э У 1")) ; Оператор SELECT выполняет выборку данных полей Фамилия, № зачётки, Группа из (команда FROM) таблицы АНКЕТА, отмеченных «галочкой» в строке Вывод на экран запроса на рис. 8.13. За оператором WHERE следует условие отбора ( ( (АНКЕ­ ТА. Группа) ="Э У 1") ) — выборка студентов группы ЭУ1. Аналогичный вид имеют SQL-запросы для примера 8.6 (рис. 8.14): SELECT АНКЕТА.Фамилия, АНКЕТА.[№ з а ч ё т к и ] , АНКЕТА.[Дата р о ж д е н и я ], АНКЕТА. Группа FROM АНКЕТА WHERE ( ( (АНКЕТА.Фамилия)= "И ван ов" Or (АНКЕ­ ТА. Фамилия)= " С ём ин") ) ; Для примера 8.7 (рис. 8.15): SELECT АНКЕТА.Фамилия, АНКЕТА.[№ з а ч ё т к и ] , АНКЕТА.[Дата р о ж д е н и я ], АНКЕТА. Группа FROM АНКЕТА WHERE ( ( (АНКЕТА.[Дата р ож д ен и я ]) > # 1 / 1 / 1 9 8 2 # ) ) ; Для примера 8.8 (рис. 8.16): SELECT С Е С С И Я .Фамилия, СЕССИЯ.П о л , СЕССИЯ.М а т е м , СЕССИЯ.Эконом, С Е С С И Я .Информ, СЕССИЯ.Оценка FROM СЕССИЯ WHERE (((СЕССИЯ.Пол)= "м")) ORDER BY СЕССИЯ.Фамилия; За оператором сортировки ORDER BY указано поле Фа­ милия, элементы которого сортируются в алфавитном по­ рядке. Продолжим построение SQL-запросов. Для примера 8.9 (рис. 8.17): SELECT СЕССИЯ. Фамилия FROM СЕССИЯ WHERE ( ( (СЕССИЯ.Матем)>92) 217 Глава 8. БАЗЫ ДАННЫХ AND ( (СЕССИЯ. Э к он ом )>92) AND ( (СЕССИЯ.Информ)> 9 2 ) ) ; Для примера 8.10 (рис. 8.18): SELECT СЕССИЯ. Фамилия FROM СЕССИЯ WHERE ( ( (СЕССИЯ.Матем)<53) OR ((СЕССИЯ.Эконом)<53) OR ( (СЕССИЯ.Информ)< 5 3 ) ) ; Для примера 8.11 (рис. 8.19а): SELECT СЕССИЯ. Фамилия, ( ( [М атем ]+ [Э к он ом ]+ [Информ]) / 3 ) FROM СЕССИЯ; AS Средний Приведем итоговый SQL-запрос для примера 8.12 (рис. 8.20а): SELECT СЕССИЯ.Пол, C o u n t(СЕССИЯ. Пол) AS [ C ou n t-П ол] FROM СЕССИЯ GROUP BY СЕССИЯ.Пол HAVING ( ( (СЕСС И Я.П ол)="ж ")) ; После оператора SELECT вычисляется количество эле­ ментов поля Пол таблицы СЕССИЯ: Count (СЕССИЯ.Пол), с образованием в вы ходной таблице поля с именем Count_JIon. Далее осуществляется группировка в поле Пол (GROUP BY СЕССИЯ. Пол) по новому признаку «ж » (HAVING ( ( (СЕССИЯ.Пол) ="ж" ) )). При этом в поле Пол результирующей таблицы выводится "ж". Приведем многотабличные итоговые SQL-запросы для примера 8.13 (рис. 8.21): SELECT СЕССИЯ. Фамилия, СЕССИЯ. П ол, СТИПЕНДИЯ. Р а зм е р , АНКЕТА. Группа FROM СТИПЕНДИЯ INNER JOIN (АНКЕТА INNER JOIN СЕССИЯ ON АНКЕТА.Фамилия=СЕССИЯ.Фамилия) ON СТИПЕНДИЯ. Оценка=СЕССИЯ. Оценка WHERE ( ( (СЕССИЯ.Пол)="ж") AND ( (АН КЕТА.Группа)=” ЭУ1") ) ; и для примера 8.14 (рис. 8.22): SELECT СЕССИЯ.Пол, Sum(СТИПЕНДИЯ. Разм ер) AS [Sum-Разм ер] 218 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ FROM СТИПЕНДИЯ INNER JOIN (АНКЕТА INNER JOIN СЕССИЯ ON АНКЕТА.Фамилия=СЕССИЯ.Фамилия) ON СТИПЕНДИЯ. Оценка=СЕССИЯ. Оценка GROUP BY СЕССИЯ.Пол, АНКЕТА. Группа HAVING ( ( (СЕССИЯ.Пол)="ж") AND ( (А Н К Е Т А .Группа)="Э У 1")) ; Здесь в новом поле Sum_Pa3Mep помещается результат суммирования данных поля Размер таблицы СТИПЕНДИЯ (Siam (СТИПЕНДИЯ.Размер) As Sum_Pa3Mep). После предложения FROM для ключевого поля Оцен­ ка таблицы СТИПЕНДИЯ устанавливается связь (INNER JOIN) с полем Оценка главной таблицы СЕССИЯ (ON СТИПЕНДИЯ.Оценка=СЕССИЯ.Оценка), а также связь ме­ жду ключевыми полями Фамилия таблиц АНКЕТА и СЕС­ СИЯ (ON СЕССИЯ .Ф а м ш ш я = А Н К Е Т А .Фамилия). При этом вычисление суммарной стипендии выполня­ ется длястуденток( (СЕССИЯ.Пол) ="ж")группы ЭУ1 путем группировки поля Пол таблицы СЕССИЯ и поля Группа таб­ лицы АНКЕТА (GROUP BY СЕССИЯ.Пол, АНКЕТА.Группа) по признаку «ЭУ1» (HAVING (( (СЕССИЯ.Пол) = "ж ") AND ( (АНКЕТА.Группа) =" ЭУ1") ) ) с выводом последнего в поле Группа итоговой таблицы. § 8.6. ФОРМИРОВАНИЕ ОТЧЕТОВ Работа с БД, как правило, завершается формировани­ ем отчета, на основании которого выводится печатный до­ кумент. Различные средства создания отчетов вызывают­ ся нажатием кнопки Создать в окне Отчеты, базы дан­ ных. Появляется окно Новый отчет с шестью видами отчетов, среди которых наиболее часто используются Мас­ тер и Конструктор отчетов. В окне Новый отчет выберем Мастер отчетов и ука­ жем в качестве источника данных таблицу или запрос. В процессе работы с Мастером отчетов многократно появ­ ляются окна с названием «Создание отчетов», требующие: • выбрать поля для отчета; • задать уровни и интервалы группировки; • выполнить вычисления итоговых значений; 219 Глава 8. БАЗЫ ДАННЫХ • i - 1 • 1 * 2 * 1 * 3 * « - 5 - I • б • * • 7 • I •$ ■ i * 3 * I 4 Верхний колонтитул а ▼ П а н ел ь э а f e -Л Ал аб| Q f ! @ <имя почтового сервера> Например, [email protected]. Глава 9. КОМПЬЮТЕРНЫЕ СЕТИ 233 Здесь ben d er— имя пользователя, vasjuky.ru— имя компьютера, @ — разделительный символ, его смысловое значение — предлог «на». Сообщения, поступающие по e-mail, хранятся на спе­ циальном почтовом сервере в выделенной для получателя области дисковой памяти — его электронном почтовом ящике, откуда их можно выгрузить и прочитать в любое удобное время. Для отправки сообщения нужно знать элек­ тронный адрес абонента. При качественной связи элек­ тронное письмо доходит в любую точку мира в течение не­ скольких минут. Самыми популярными почтовыми программами в Рос­ сии являются M S Outlook Express и The B at!. Первая по­ ставляется в составе операционной системы Windows, а вторая — продукт молдавской компании RITLabs. Четвертый вид услуг — система телеконференций, или группы новостей Usenet (от Users Network). Эта систе­ ма организует коллективные обсуждения по различным направлениям, которые называются телеконференциями. В каждой телеконференции проводится ряд дискуссий по конкретным темам. Сегодня Usenet имеет около двадцати тысяч дискуссионных групп (NewsGroups), разбитых на несколько категорий: news — вопросы, касающиеся системы телеконферен­ ций; сотр — компьютеры и программное обеспечение; sci — научно-исследовательская деятельность; soc — социальные вопросы; talk — дебаты по различным спорным вопросам; misc — все остальное. Внутри каждой из этих категорий существует своя ие­ рархия с выделением тематических групп. Группы, новостей — это специальные серверы, кото­ рые быстро обмениваются информацией друг с другом и передают периодически обновляемые новости на компью­ теры клиентов. Пользователь может стать таким клиен­ том, подписавшись на получение новостей определенной группы у своего провайдера или у любого сервера, предос­ тавляющего новостные услуги. 234 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Пятый вид услуг — электронная доска объявлений BBS (Bulletin Board System). Пользователи имеют возмож­ ность оставлять на ней сообщения. Многие электронные доски объявлений требуют регистрации. Шестой вид услуг — Справочная служба Интернета. Примером является справочная служба RFC (Request for Comments), которая содержит сведения по разнообразной тематике для интернет-пользователя. Седьмой вид услуг — служба управления удаленным компьютером Telnet. Подключившись к удаленному ком­ пьютеру, с помощью этой службы можно распоряжаться его ресурсами. В частности, на удаленной супер-ЭВМ мож­ но выполнить сложные расчеты, которые потребовали бы большой затраты времени, если бы проводились на обыч­ ном персональном компьютере. § 9.5. СРЕДСТВА ИСПОЛЬЗОВАНИЯ СЕТЕВЫХ СЕРВИСОВ В Интернете для быстрого получения нужной инфор­ мации разработаны специальные системы поиска инфор­ мации. Все эти системы располагаются на специально вы­ деленных компьютерах с быстрыми каналами связи — по­ исковых серверах. Поисковые системы можно разбить на два типа: • поисковые каталоги, которые формируются специалистами-редакторами; • поисковые указатели, которые формируются специ­ альными программами без участия людей. И те и другие представляют собой большие базы дан­ ных. В ответ на запрос пользователю выдается список ад­ ресов найденных страниц обычно с заголовками докумен­ тов, иногда — с аннотациями в виде нескольких первых строк текста. Поисковые каталоги формируются специалистамиредакторами, которые отбирают информацию, организу­ ют и снабжают данные перекрестными ссылками в разных поисковых категориях. Эти специалисты непрерывно ис­ следуют и каталогизируют сетевые ресурсы на серверах, разбросанных по всему миру. В результате этой работы Глава 9. КОМПЬЮТЕРНЫЕ СЕТИ 235 клиенты Интернета имеют постоянно обновляющиеся ие­ рархические каталоги. Каталоги, составленные людьми, более осмыслены, чем автоматические указатели. Но та­ ких каталогов очень мало, так как их создание и поддерж­ ка требуют огромных затрат. Например, популярный по­ исковый каталог Yahoo! обладает одной из крупнейших баз данных и поддерживает два основных метода работы с каталогом: поиск по ключевым словам и по иерархическо­ му дереву разделов. Поисковые указатели позволяют искать информацию по ключевым словам в базе данных индексных ссылок. Эти системы имеют специальные программы для периодиче­ ского просмотра W eb-страниц, их регистрации и индекса­ ции и обновления своей базы данных сведениями о новых страницах и изменениях в старых страницах. Информа­ ции по запросам выдается много, но качество ее отбора хуже, чем в каталогах. К автоматическим указателям сле­ дует прибегать только тогда, когда точно известны ключе­ вые слова, характеризующие соответствующую предмет­ ную областъ. Среди известных указателей выделяется yandex.ru — одна из самых мощных отечественных автоматических поисковых систем. Она обладает большой базой данных и выдает наибольшее количество ссылок. Среди поисковых систем, обслуживающих русскоязыч­ ный сегмент Интернета, выделяются также rambler.ru, google.com, aport.ru, mail.ru. il li: ii Ш : 1!: |I: 1: il li: ii li: II: il: liii il: ii: : h ^1: : h iil li li: T il: ^i: il: li: ili HI T lii lii ' ГЛАВА ДЕСЯТАЯ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ § 10.1.ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ И ЕЕ СОСТАВЛЯЮЩИЕ Проблема обеспечения информационной безопасности актуальна с тех пор, как люди стали обмениваться инфор­ мацией, накапливать ее и хранить. Во все времена возника­ ла необходимость надежного сохранения наиболее важных достижений человечества с целью передачи их потомкам. Аналогично возникала необходимость обмена конфиденци­ альной информацией и надежной ее защиты. С началом массового применения компьютеров пробле­ ма информационной безопасности приобрела особую остро­ ту. С одной стороны, компьютеры стали носителями инфор­ мации и, как следствие, одним из каналов ее получения, как санкционированного, так и несанкционированного. С другой стороны, компьютеры как любое техническое устройство подвержены сбоям и ошибкам, которые могут привести к потере информации. Под информационной безопасностью понимается за­ щищенность информации от случайного или преднамерен­ ного вмешательства, наносящего ущерб ее владельцам или пользователям. С повышением значимости и ценности информации со­ ответственно растет и важность ее защиты. С одной сторо­ ны, информация стала товаром, и ее утрата или несвоевре­ менное раскрытие наносит материальный ущерб. С другой стороны, информация — это сигналы управления процес­ сами в обществе, технике, а несанкционированное вмеша­ тельство в процессы управления может привести к катаст­ рофическим последствиям. Глава 10. ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ 237 Для анализа возможных угроз информационной безо­ пасности рассмотрим составные части автоматизированной системы обработки информации: • аппаратные средства — компьютеры и устройства об­ мена информацией между ними (внутренние и внеш­ ние устройства, устройства связи и линии связи); • системное и прикладное программное обеспечение; • данные (информация) — хранимые временно и посто­ янно во внутренних и внешних носителях, печатные копии, системные журналы; • персонал — обслуживающий персонал и пользователи. Опасные воздействия на информационную систему под­ разделяются на непреднамеренные и преднамеренные. Наиболее типичными причинами непреднамеренных воздействий являются: • аварийные ситуации из-за стихийных бедствий и на­ рушения электропитания; • отказы и сбои аппаратуры; • ошибки в программном обеспечении; • ошибки в работе пользователей; • помехи в линиях связи из-за воздействий внешней среды. Преднамеренные воздействия — это целенаправлен­ ные действия нарушителя, обусловленные не только мате­ риальными, но и психологическими факторами. К таким факторам относятся, например, недовольство служебным положением, любопытство, конкурентная борьба и т. д. Наиболее распространенными и многообразными ви­ дами нарушений в сфере информационных технологий являются компьютерные вирусы и несанкционированный доступ к информации. § 10 .2.КОМПЬЮТЕРНЫЕ ВИРУСЫ И СРЕДСТВА АНТИВИРУСНОЙ ЗАЩИТЫ 10.2.1. ОПРЕДЕЛЕНИЕ И КЛАССИФИКАЦИЯ ВИРУСОВ Компьютерным вирусом называется программа, спо­ собная самостоятельно создавать свои копии и внедряться в другие программы, в системные области дисковой памяти 238 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ компьютера, распространяться по каналам связи, вызы­ вая нарушение работы программ, порчу файловых систем и компонентов компьютера, нарушение нормальной рабо­ ты пользователей. Компьютерным вирусам характерны определенные ста­ дии существования: пассивная стадия, в которой вирус никаких действий не предпринимает; стадия размноже­ ния, когда вирус старается создать как можно больше сво­ их копий; активная стадия, в которой вирус переходит к выполнению деструктивных действий в локальной ком­ пьютерной системе или компьютерной сети. В настоящее время существуют тысячи различных ви­ русов, классификация которых приведена ниже. По среде обитания вирусы делятся на сетевые, файло­ вые, загрузочные, документные. Сетевые вирусы используют для своего распростране­ ния команды и протоколы телекоммуникационных сетей. Файловые вирусы чаще всего внедряются в исполняе­ мые файлы, имеющие расширения .ехе и .с о т , но могут внедряться и в файлы с компонентами операционных сис­ тем, драйверы внешних устройств, объектные файлы и библиотеки, в командные пакетные файлы. При запуске зараженных программ вирус на некоторое время получает управление и в этот момент производит запланированные деструктивные действия и внедрение в другие файлы про­ грамм. Загрузочные вирусы внедряются в загрузочный сек­ тор дискеты или в главную загрузочную запись жесткого диска. Такой вирус изменяет программу начальной за­ грузки операционной системы, запуская необходимые для нарушения конфиденциальности программы или под­ меняя для этой же цели системные файлы, в основном это относится к файлам, обеспечивающим доступ пользо­ вателей в систему. Документные вирусы (макровирусы) заражают файлы текстовых редакторов или электронных таблиц, исполь­ зуя макросы, которые сопровождают такие документы. Вирус активизируется, когда документ загружается в со­ ответствующее приложение. Глава 10. ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ 239 По способу заражения вирусы делятся на резидентные и нерезидентные. Резидентные вирусы после завершения инфицирован­ ной программы остаются в оперативной памяти и продол­ жают свои деструктивные действия, заражая другие испол­ няемые программы, вплоть до выключения компьютера. Нерезидентные вирусы запускаются вместе с заражен­ ной программой и удаляются из памяти вместе с ней. По алгоритмам функционирования вирусы делятся на паразитирующие, «Троянские кони», вирусы-невидимки, мутирующие. Паразитирующие — вирусы, изменяющие содержи­ мое зараженных файлов. Эти вирусы легко обнаружива­ ются и удаляются из файла, так как имеют всегда один и тот же внедряемый программный код. Троянские кони — вирусы, маскируемые под полезные программы, которые очень хочется иметь на своем компь­ ютере. Троянские программы не поражают систему ком­ пьютера, в отличие от вирусов, а отсылают на запрограм­ мированные в этих программах адреса имеющиеся на ком­ пьютере пользователя файлы, пароли и другую секретную информацию. Такого рода программами часто пользуются злоумышленники с целью получения доступа к информа­ ции пользователя. Вирусы-невидимки способны прятаться при попытках их обнаружения. Они представляют собой разновидность резидентных вирусов, постоянно обитающих в оператив­ ной памяти компьютера. Вирусы-невидимки искажают информацию, считанную с диска, таким образом, чтобы программа, для которой эти данные были предназначены, получала ложную информацию. Мутирующие вирусы периодически изменяют свой программный код, что делает задачу обнаружения вируса очень сложной. Для своевременного обнаружения и удаления вирусов необходимо знать основные признаки появления вирусов в компьютере. К таким признакам относятся: • отказ в работе компьютера или отдельных компонен­ тов; 240 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ • отказ в загрузке операционной системы; • замедление работы компьютера; нарушение работы от­ дельных программ; • искажение, увеличение размера или исчезновение фай­ лов; • уменьшение доступной программам оперативной па­ мяти. 10.2.2. СПОСОБЫ И СРЕДСТВА ЗАЩИТЫ ОТ ВИРУСОВ Для защиты от проникновения вирусов необходимо проводить мероприятия, исключающие заражение про­ грамм и данных компьютерной системы. Основными ис­ точниками проникновения вирусов являются коммуника­ ционные сети и съемные носители информации. Для исключения проникновения вирусов через комму­ никационную сеть необходимо осуществлять автоматиче­ ский входной контроль всех данных, поступающих по сети, который выполняется сетевым экраном (брандмауэром), принимающим пакеты из сети только от надежных источ­ ников. Рекомендуется проверять всю электронную почту на наличие вирусов, а почту, полученную от неизвестных источников, удалять не читая. Для исключения проникновения вирусов через съем­ ные носители необходимо ограничить число пользовате­ лей, которые могут записывать на жесткий диск файлы и запускать программы со съемных носителей. Обычно это право дается только администратору системы. В обязатель­ ном порядке при подключении съемного носителя следует проверять его специальной антивирусной программой. Для обнаружения и удаления компьютерных вирусов разработано много различных программ, которые можно разделить на детекторы, ревизоры, фильтры, доктора и вакцины. Детекторы осуществляют поиск компьютерных виру­ сов в памяти и при обнаружении сообщают об этом пользо­ вателю. Ревизоры выполняют значительно более сложные дей­ ствия для обнаружения вирусов. Они запоминают исход­ ное состояние программ, каталогов, системных областей и Глава 10. ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ 241 периодически сравнивают их с текущими значениями. При изменении контролируемых параметров ревизоры сообща­ ют об этом пользователю. Фильтры выполняют выявление подозрительных про­ цедур. К таким процедурам относятся, например, коррек­ ция исполняемых программ, изменение загрузочных запи­ сей диска, изменение атрибутов или размеров файлов и др. При обнаружении подобных процедур фильтры запра­ шивают пользователя о правомерности их выполнения. Доктора являются самым распространенным типом антивирусных программ. Эти программы не только обна­ руживают, но и удаляют вирусный код из файла — «ле­ чат» программы. Доктора способны обнаружить и удалить только известные им вирусы, поэтому их необходимо пе­ риодически, обычно раз в месяц, обновлять. Вакцины — это антивирусные программы, которые так модифицируют файл или диск, что он воспринимается программой-вирусом уже зараженным, и поэтому вирус не внедряется. Среди наиболее популярных у российских пользовате­ лей антивирусных пакетов назовем программы Norton Antivirus, Антивирус Касперского и Dr. Web. По различ­ ным оценкам, в настоящее время продукты Лаборатории Касперского занимают большую часть российского рынка. Прочие производители, в первую очередь Symantec, «Диалог-Наука», Trend Micro и Panda, делят оставшуюся долю рынка. Рассмотрим коротко эти популярные программы. Symantec Norton Antivirus 2008 — это последняя вер­ сия одного из наиболее популярных в мире антивирусных решений, которое предохраняет компьютер от всех видов вредоносных программ, обеспечивает надежную безопас­ ность и конфиденциальность работы пользователей. Про­ грамма автоматически удаляет вирусы различных клас­ сов, проверяет и обезвреживает входящие и исходящие сообщения электронной почты, выявляет и блокирует ви­ русы во вложениях службы передачи мгновенных сообще­ ний. Приложение автоматически загружает обновления системы антивирусной безопасности для защиты от новых угроз. 242 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Антивирус Касперского Personal 5.0 — разработка «Ла­ боратории Касперского», воплощающая результаты мно­ голетних исследований ведущих экспертов в области за­ щиты от вредоносных программ. Программный комплекс позволяет организовать полномасштабную систему анти­ вирусной защиты персонального компьютера. Он охваты­ вает все возможные источники проникновения вирусной угрозы — съемные и постоянные файловые носители, элек­ тронную почту и Интернет. Использование «Антивируса Касперского» обеспечивает полное восстановление работо­ способности системы при вирусной атаке. В то же время функция антивирусной проверки и лечения электронной почты позволяет очистить от вирусов входящую и исходя­ щую корреспонденцию в режиме реального времени. Doctor Web для Windows 95/ХР представляет собой комбинацию антивирусного сканера Doctor Web и рези­ дентного сторожа Spider Guard, интегрированного в ОС компьютера. Один из самых совершенных в мире эвристи­ ческих анализаторов Doctor Web, в сочетании с ежедневно обновляющимися вирусными базами, является надежной защитой от вирусов всех классов. Резидентный сторож Spider осуществляет анализ всех опасных действий рабо­ тающих программ и позволяет блокировать вирусную ак­ тивность практически всех известных и еще неизвестных вирусов. Он позволяет не допустить заражения компьюте­ ра вирусом, даже если этот вирус не будет определен ска­ нером Doctor Web с включенным эвристическим анализа­ тором. § 10.3. ЗАЩИТА ОТ НЕСАНКЦИОНИРОВАННОГО ВМЕШАТЕЛЬСТВА Несанкционированный доступ — это доступ к инфор­ мации, нарушающий установленные правила разграниче­ ния доступа, с использованием средств вычислительной техники или информационных систем (ИС). Правилами разграничения доступа является совокуп­ ность положений, регламентирующих права доступа лиц (субъектов доступа) к единицам информации (объектам доступа). Глава 10. ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ 243 Право доступа к ресурсам ИС определяется руковод­ ством для каждого сотрудника в соответствии с его функ­ циональными обязанностями. Каналы несанкционированного доступа к информации классифицируются по составным частям информационной системы, т. е. такой доступ может происходить: • через пользователя (хищение информации, чтение ин­ формации с экрана или при вводе с клавиатуры, чте­ ние информации из распечатки); • через программы (подбор или перехват паролей, рас­ шифровка зашифрованной информации, копирование информации с носителя и др.); • через аппаратуру (перехват побочных электромагнит­ ных излучений от аппаратуры, линий связи, сетей элек­ тропитания, подключение специально разработанных аппаратных средств, обеспечивающих доступ к инфор­ мации). Применительно к ЭВМ наиболее актуальным и важным уровнем обеспечения информационной безопасности явля­ ется аппаратно-программный уровень. Рассмотрим наибо­ лее разработанные аппаратно-программные системы и ме­ тоды обеспечения защиты от несанкционированного вме­ шательства: • системы идентификации (распознавания) и аутентифи­ кации (проверки подлинности) пользователей; • системы шифрования дисковых данных; • системы шифрования данных, передаваемых по сетям; • системы аутентификации электронных данных; • криптографические методы защиты информации. 10.3.1. СИСТЕМЫ ИДЕНТИФИКАЦИИ, АУТЕНТИФИКАЦИИ И ШИФРОВАНИЯ Системы идентификации и аутентификации поль­ зователей применяются для ограничения доступа случай­ ных и незаконных пользователей к ресурсам компьютер­ ной системы. Общий алгоритм работы таких систем заключается в том, чтобы получить от пользователя информацию, удо­ стоверяющую его личность, проверить ее подлинность и 244 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ затем предоставить (или не предоставить) этому пользова­ телю возможность работы с системой. При построении этих систем возникает проблема вы­ бора информации, на основе которой осуществляются про­ цедуры идентификации и аутентификации пользователя, например: • конфиденциальная информация, которой обладает пользователь (пароль, секретный ключ, персональный идентификатор и т. п.); пользователь должен запом­ нить эту информацию или же для нее могут быть при­ менены специальные средства хранения; • физиологические параметры человека (отпечатки паль­ цев, рисунок радужной оболочки глаза и т. п.) или осо­ бенности поведения (особенности работы на клавиату­ ре и т. п.). Системы, основанные на первом типе информации, счи­ таются традиционными. Системы, использующие второй тип информации, называют биометрическими. Системы шифрования дисковых данных используют­ ся в тех случаях, когда нет возможности ограничить дос­ туп пользователей к носителям информации. Применение систем шифрования дисковых данных делает недоступной по смыслу информацию для тех пользователей, у которых нет ключа. Системы шифрования дисковых данных могут осуществлять преобразования данных на уровне файлов или на уровне дисков. По способу функционирования системы шифрования дисковых данных подразделяются на системы «прозрач­ ного» шифрования и системы, специально вызываемые для осуществления шифрования. В системах «прозрачного» шифрования (шифрование «на лету») преобразования осуществляются в режиме ре­ ального времени, незаметно для пользователя. Например, пользователь записывает подготовленный в текстовом ре­ дакторе документ на защищаемый диск, а система защи­ ты в процессе записи выполняет его шифрование. Системы второго класса обычно представляют собой утилиты, которые необходимо специально вызывать для выполнения шифрования. Глава 10. ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ 245 Системы шифрования данных, передаваемых по сетям, предназначены для защиты информации, передаваемой в вычислительных сетях. Системы аутентификации электронных данных ис­ пользуются в тех случаях, когда необходимо подтверждать подлинность подписи автора документа и целостность (не­ изменность) самого документа, переданного через сеть. Для аутентификации данных используется электронная цифровая подпись, которая представляет собой относи­ тельно небольшое количество дополнительной аутентифи­ цирующей информации, передаваемой вместе с подписы­ ваемым текстом. Отправитель формирует цифровую под­ пись, используя секретный ключ отправителя. Получатель проверяет подпись, используя открытый ключ отправите­ ля (принцип асимметричного шифрования). 10.3.2. КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ Рассмотрим криптографические методы шифрования данных, являющиеся эффективным средством предотвра­ щения несанкционированного доступа к информации. Криптография — это наука, занимающаяся составле­ нием шифров (шифрованием) и разработкой правил дос­ тупа к содержанию шифров (криптоанализом). Шифр представляет собой совокупность условных зна­ ков для секретной переписки. Ключом шифрования называют правило или алгоритм шифрования. Метод шифрования характеризуется показателями на­ дежности и трудоемкости. Важнейшим показателем на­ дежности криптографического закрытия информации яв­ ляется его криптостойкость — тот минимальный объем зашифрованного текста, который можно вскрыть стати­ стическим анализом. Таким образом, стойкость шифра оп­ ределяет допустимый объем информации, зашифровывае­ мый при использовании одного ключа. Дешифрование — обратный шифрованию процесс. На ос­ нове ключа шифрованный текст (криптограмма, шифрограм­ ма, шифровка) преобразуется в исходный открытый текст. 246 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Передача сосбщения Отправитель Получатель Рис. 10.1 По характеру использования ключа различают две схемы (алгоритма) шифрования: симметричную и ассиметричную. В симметричной схеме шифрования для шифрования открытого текста отправителем и дешифрования крипто­ граммы получателем используется один и тот же секрет­ ный ключ (рис. 10.1). Недостаток симметричной схемы шифрования состо­ ит в том, что ключ шифрования должен быть передан от отправителя к получателю. Передача секретного ключа связана с риском его потери. В США Правительство в 1977 г. утвердило в качестве государственного стандарта блочный алгоритм шифрования DES (Data Encryption Standard), разработанный фирмой IBM. В России в 1991 г. введен в действие подобный криптоалгоритм под назва­ нием ГОСТ 28147-89. Ассиметричная схема шифрования предполагает на­ личие двух ключей (рис. 10.2). Пе ред ача сооб ще н ия Отправитель Получатель Рис. 10.2 Глава 10. ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ 247 Получатель по каналу связи передает отправителю от­ крытый ключ, с помощью которого отправитель шифрует текст в криптограмму. При получении криптограммы по­ лучатель дешифрует ее в текст с помощью секретного клю­ ча. Перехват открытого ключа злоумышленником не по­ зволяет дешифровать криптограмму (сообщение), так как она рассекречивается лишь вторым секретным ключом. С 1978 г. в США используется схема ассиметричного шиф­ рования открытым ключом RSA, а в России — аналогич­ ная схема CRYPTON, с 1994 г. принят ГОСТ 34.11-94. Теперь рассмотрим процедуры шифрования текстовых сообщений наиболее известными методами замены и пере­ становки. Зашифруем сообщение «ГДЕ АББА» методом замены (другими словами — методом подстановки), используя шифр Цезаря. Как известно, циклический шифр Цезаря получается заменой каждой буквы открытого текста буквами этого же алфавита, расположенными впереди через определенное число позиций, например через три позиции. Цикличе­ ским он называется потому, что при выполнении замены вслед за последней буквой алфавита вновь следует первая буква алфавита. Запишем фрагменты русского алфавита и покажем, как выполняется шифрование: АБВГ Д ЕЁЖЗИК АБВГДЕЁЖЗИ К В результате проведенного преобразования получится шифрограмма: «ЁЖЗ ГДДГ». В данном случае ключом является величина сдвига (число позиций между буквами). Число ключей этого шиф­ ра невелико (оно равно числу букв алфавита). Не представ­ ляет труда вскрыть такую шифрограмму перебором всех возможных ключей. При шифровании буквы могут быть заменены числа­ ми (в простейшем случае порядковыми номерами букв 248 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ в алфавите). Тогда наша шифровка будет выглядеть так: 4-5-6-0-1-2-2-1. Замена символов открытого текста может происходить на специальные символы, например на «пляшущих чело­ вечков» , как в рассказе К. Дойля. Длинные сообщения, полученные методом одноалфа­ витной замены (другое название — шифр простой одно­ буквенной замены), раскрываются с помощью таблиц от­ носительных частот. Для этого подсчитывается частота появления каждого символа, делится на общее число сим­ волов в шифрограмме. Затем с помощью таблицы относи­ тельных частот определяется, какая была сделана заме­ на при шифровании. Повысить криптостойкость позволяют многоалфавит­ ные шифры замены (или шифры многозначной замены). При этом каждому символу открытого алфавита ставят в соответствие не один, а несколько символов шифровки. Многоалфавитные шифры изменяют картину статистиче­ ских частот появления букв и этим затрудняют вскрытие шифра без знания ключа. Рассмотрим примеры шифрования сообщения методом перестановки. Идея этого метода криптографии заключается в том, что запись открытого текста и последующее считывание шифровки производятся по разным путям некоторой гео­ метрической фигуры (например, квадрата). Для пояснения идеи возьмем квадрат (матрицу) 3 x 4 , будем записывать текст последовательно по строкам свер­ ху вниз, а считывать по столбцам последовательно слева направо. Предположим, что требуется зашифровать сообщение «ЕЩЁ НЕ ВЕЧЕР»: Е Щ Ё - Н Е — В Е Ч Е Р Глава 10. ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ 249 В таблице символом «_ » обозначен пробел. В результате преобразований получится шифровка: «ЕНЕЩЕЧЁ_Е ВР» . Ключом в данном случае является размер матрицы, порядок записи открытого текста и считывания шифро­ граммы. Методы замены и перестановки по отдельности не обеспечивают необходимую криптостойкость. Поэтому их используют совместно, а также в сочетании с аддитив­ ным методом. При шифровании аддитивным методом вначале от­ крытый текст шифруют методом замены, преобразуя ка­ ждую букву в число, а затем к каждому числу добавляют секретную гамму (псевдослучайную числовую последова­ тельность). ЛИТЕРАТУРА 1. Балдин, К. В. Информатика: учеб. для вузов / К . В. Балдин, В. Б. Уткин. М .: П роект, 2003. 304 с. 2. Беляев, М. А . О сновы и н ф ор м ати ки : учеб. для вузов / М. А. Беляев, В. В. Л ысенко, JI. А . Малинина. Р остов-н/Д : Феникс, 2006. 352 с. 3. Брукш ир, Д. И нформатика и вы числительная техника / Д. Брукшир. СПб.: Питер, 2004. 620 с. 4. Головко, В. А . Нейронные сети: обучение, организация и применение: учеб. пособие для вузов / В. А . Головко. М .: И ПРЖ Р, 2001. Кн. 4. 256 с. 5. Демидова, JI. А . Программирование в среде Visual Basic fo r A pplications: практикум / JI. А . Демидова, A . H. Пылькин. М .: Горячая л иния-Т елеком , 2004. 175 с. 6. Заде, JI. А . Понятие лингвистической переменной и его при­ менение к принятию приближенных решений / JI. А . Заде. М .: М ир, 1976. 165 с. 7. Информатика: энциклопедический словарь для начинающих / под ред. Д. А . Поспелова. М .: Педагогика-Пресс, 1994. 352 с. 8. Информатика. Базовый курс / под ред. С. В. Симоновича. СПб.: Питер, 2005. 640 с. 9. Информатика: учеб. / под ред. Н. В. Макаровой. М .: Финан­ сы и статистика, 2003. 768 с. 10. Кудинов, Ю. И. Практическая работа в DOS и W indows: учеб. пособие / Ю. И. Кудинов. Липецк: ЛГТУ, 1999. 33 с. 11. Кудинов, Ю. И. Практическая работа в W ord: учеб. пособие / Ю. И. Кудинов. Л ипецк: ЛГТУ, 1999. 57 с. 12. Кудинов, Ю. И. Практическая работа в Excel: учеб. пособие / Ю. И. Кудинов. Л ипецк: ЛГТУ, 1999. 61 с. 13. Кудинов, Ю. И. Практическая работа в A ccess: учеб. п осо­ бие / Ю. И. Кудинов. Липецк: ЛГТУ, 1999. 66 с. 14. Кудинов, Ю. И. Практическая работа в Power Point: учеб. пособие / Ю. И. Кудинов. Липецк: ЛГТУ, 2000. 31 с. ЛИТЕРАТУРА 251 15. Кузин, JL Т. Основы кибернетики: учеб. пособие для вузов / JI. Т. Кузин. М .: Энергия, 1979. Т. 2: Основы кибернетиче­ ских моделей. 584 с. 1G. Люгер, Д. Ф. И скусственный интеллект. Стратегии и мето­ ды решения слож ны х проблем / Д. Ф. Л югер. М .: Вильямс, 2 0 0 3 .8 6 4 с. 17. Осовский, С. Нейронные сети для обработки информации / С. Осовский. М .: Финансы и статистика, 2002. 344 с. 18. О стр ей к ов ск и й , В. А . И нф орм ати ка: уч еб. для вузов / В. А . О стрей ковски й . М .: Высш ая ш кола, 2005. 511 с. 19. Представление и использование знаний / под ред. X . Уэно, М. Исидзука. М .: Мир, 1989. 220 с. 20. Соболь, Б. В. Информатика: учеб. / Б. В. Соболь, А . Б. Галин, Ю. В. Панов [и др.]. Р остов-н /Д : Ф еникс, 2006. 448 с. 21. Сырецкий, Г. А . Информатика. Фундаментальный курс / Г. А. Сырецкий. СПб.: БХВ, 2005. Т. 1: Основы информаци­ онной и вычислительной техники. 832 с. 22. Большая компью терная энциклопедия. М .: Эксмо, 2007. 480 с. 23. Угринович, Н. Д. Информатика и информационные техно­ логии: учеб. для 1 0 - 1 1-х классов / Н. Д. У гринович. М.: БИНОМ; Лаборатория знаний, 2007. 511 с. 24. Свириденко, С. С. Информационные технологии: курс лек­ ций / С. С. Свириденко. М .: Изд-во МНЭПУ, 2002. 192 с. 25. Алексеев, А . П. Информатика 2001 / А . П. А лексеев. М.: СОЛОН-Р, 2 0 0 1 .3 6 4 с. ОГЛАВЛЕНИЕ Предисловие................................................................................ 3 Глава 1. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации § 1 .1 . Основные задачи информатики............................................... 5 § 1 .2 . Информация, качество и количество информации. Информационные п р о ц е ссы ................................................... б § 1 .3 . Общее представление данных и понятие о системах счисления........................................... 11 § 1 .4 . Представление числовых данны х........................................ 13 1.4.1. Перевод чисел в позиционных системах сч и сл ен и я ................................................. 15 1.4.2. Арифметические операции в позиционных системах сч и сл ен и я .................... ...18 1.4.3. Представление чисел в компьютере...................... ...20 § 1.5. Представление логических д а н н ы х .......................................21 § 1.6. Представление текстовых д а н н ы х ...................................... ...25 § 1.7. Представление графических д а н н ы х .....................................27 § 1 .8 . Структуры данны х................................................................... ...32 § 1 .9 . Единицы хранения дан ны х................................................... ...36 Глава 2. Технические средства реализации информационных процессов § 2 .1 . Основные этапы развития информатики и вычислительной техн и к и ................................................... ..39 § 2 .2 . Архитектура, состав и назначение основных элементов персонального компьютера................44 § 2 .3 . Устройства хранения д ан н ы х............................................... ..49 § 2 .4 . Устройства в вод а /вы в од а ........................................................53 ОГЛАВЛЕНИЕ 253 Глава 3. Программные средства реализации информационных процессов § 3 .1 . Классификация программного обесп еч ен и я .................... ..64 § 3.2. Операционная система W indow s.............................................67 § 3.3. Служебное программное обеспечение....................................72 3.3.1. Файловые менеджеры............................................... ..72 3.3.2. Сжатие информации................................................. ..73 3.3.3. Программы резервирования дан н ы х.................... ..75 3.3.4. Программы записи ком п акт-ди сков.................... ..76 3.3.5. Программы просмотра и конвертации.................. ..76 § 3.4. Программное обеспечение обработки текстовых докум ентов........................................ ...77 3.4.1. Текстовый редактор Блокнот (N oteP a d ).................79 3.4.2. Текстовый редактор W o rd P a d ............................... ...79 3.4.3. Текстовый процессор W o r d .................................... ...81 § 3.5. Создание презентации с помощью Power P o i n t ...................87 3.5.1. Создание слайдов презентации ............................. 88 3.5.2. Формирование эффектов вывода слайдов на экран........................................... 90 3.5.3. Демонстрация презентации.................................... 91 Глава 4. Модели решения функциональных и вычислительных задач § 4.1. Моделирование как метод познания.................................... 92 4.1.1. Понятие объекта и си стем ы ...................................... 92 4.1.2. Методы моделирования и типы м оделей.............. 94 4.1.3. Классификация математических м о д е л е й ......... 96 § 4.2. Технология моделирования................................................... 98 § 4.3. Классификация задач, решаемых с помощью м одел ей ..............................................100 § 4.4. Интеллектуальные с и с т е м ы ............................................... ...101 4.4.1. Исчисление высказываний и п реди катов......... ...103 4.4.2. Логическая модель знаний.................................... ...108 4.4.3. Продукционная модель зн а н и й ........................... ...112 4.4.4. Семантические с е т и ............................................... ...114 4.4.5. Ф р ей м ы ..................................................................... ...116 4.4.6. Представление нечетких зн а н и й ............................118 4.4.7. Экспертные систем ы ............................................... ...120 4.4.8. Искусственные нейронные с е т и ........................... ...122 4.4.9. Генетические ал гор и тм ы ...................................... ...125 § 4.5. Стратегии решения з а д а ч ................................................... ...128 Глава 5. Алгоритмизация и программирование § 5.1. А лгори тм изаци я................................................................... ... 132 § 5.2. Эволюция языков программирования............................. ... 144 § 5.3. Программирование на B A S IC ................................................ 148 5.3.1. Переменные и константы ...................................... ... 148 5.3.2. Операторы и оп ера ц и и .............................................. 150 254 ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ 5.3.3. Условные операторы............................................... .. 152 5.3.4. Ц и к л ы ....................................................................... ...155 5.3.5. Операции с символьными переменными........... .. 158 § 5 .4 . Основные понятия объектно-ориентированного визуального программирования........................................ .. 160 5.4.1. Классы объектов, экземпляры класса и семейства о б ъ е к т о в ............................................... 160 5.4.2. Объекты: свойства, методы, с о б ы т и я .................. 162 Глава 6. Программное обеспечение и технологии программирования § 6 .1 . Системы программирования............................................... .. 164 § 6.2. Структурное программирование........................................ .. 166 § 6.3. Этапы подготовки и решения задач на компьютере. . . . 171 Глава 7. Электронные таблицы § 7 .1 . § 7 .2 . § 7 .3 . § 7.4. Основные понятия и элементы электронных таблиц . . . 173 Использование формул и ф ункций...................................... 176 Сортировка и фильтрация данны х...................................... 185 Подведение и т о г о в ................................................................... 187 7.4.1. Использование функции « И т о г и » ......................... 187 7.4.2. Консолидация д а н н ы х ............................................. 189 7.4.3. Сводная табл и ц а........................................................ 189 Глава 8. Базы данных § 8.1. § 8 .2 . § 8.3. § 8.4. § 8.5. Основные понятия баз д а н н ы х ............................................. 191 Реляционная модель данных ............................................... 194 Построение таблиц базы данных........................................ .. 199 Сортировка, поиск и фильтрация д а н н ы х ......................... 205 Создание за п р о с о в ................................................................... 206 8.5.1. Средства создания запросов.................................... 207 8.5.2. Запросы на в ы б о р к у ............................................... .. 209 8.5.3. Итоговые запросы ................................................... .. 213 8.5.4. Многотабличные запросы...................................... .. 213 8.5.5. Создание SQL-запросов............................................. 215 § 8 .6 . Формирование отчетов.......................................................... .. 218 Глава 9. Компьютерные сети § 9 .1 . Основные понятия и определения...................................... .. 220 § 9 .2 . Аппаратные и программные компоненты компьютерных с е т е й .................................... .. 222 § 9.3. Принципы построения сети И н тер н ет............................. .. 227 9.3.1. Доступ в Интернет................................................... ...228 9.3.2. Протоколы передачи дан н ы х............................... .. 229 9.3.3. Адресация в Интернете............................................. 230 § 9.4. Сервисы И нтерн ета................................................................. 230 § 9.5. Средства использования сетевых сервисов......................... 234 ОГЛАВЛЕНИЕ 255 Глава 10. Основы защиты информации §1 0 .1 . Информационная безопасность и ее составляю щ ие....................................................................236 § 10.2. Компьютерные вирусы и средства антивирусной защ и ты ...................................... ...237 10.2.1. Определение и классификация в и р у с о в ........... ...237 10.2.2. Способы и средства защиты от ви р усов.................240 § 10.3. Защита от несанкционированного вмешательства . . . . 242 10.3.1. Системы идентификации, аутентификации и шифрования ......................... 243 10.3.2. Криптографические методы защиты и н ф орм ац и и ............................................. 245 Литература 250 Юрий Иванович КУДИНОВ Федор Федорович ПАЩ ЕНКО ОСНОВЫ СОВРЕМЕННОЙ ИНФОРМАТИКИ Учебное пособие Издание второе, исправленное Художественный редактор С. Ю. М алахов Редактор А. В. Андреев Корректоры А. М . П лет нева , Т. А . Кошелева Верстальщик В. В. Воскресенская Подготовка иллюстраций Н. А. Платонова Выпускающие Е .А . Ант ипова , О. В. Ш илкова ЛР№ 065466 от 21.10.97 Гигиенический сертификат 78.01.07.953.П.007216.04.10 от 21.04.2010 г., выдан ЦГСЭН в СПб Издательство «ЛАНЬ» [email protected]; www. lanbook.com 192029, Санкт-Петербург, Общественный пер., 5. Тел./факс: (812) 412-29-35, 412-05-97, 412-92-72. Бесплатный звонок по России: 8-800-700-40-71 ГДЕ КУПИТЬ ДЛЯ ОРГАНИЗАЦИЙ: Для того чтобы заказать необходимые Вам книги, дост ат очно обратиться в любую из т орговых компаний И здат ельского Дома «Л А Н Ь »: по России и зарубежью «Л А Н Ь -Т Р Е Й Д ». 192029, Санкт-Петербург, ул. К рупской, 13 тел.: (812) 412-85-78, 412 -1 4 -4 5, 412-85-82; тел ./ф ак с: (812) 412-54-93 e-m ail: trade@ lanbook .ru; ICQ: 446-869-967 w w w .lanpbl.spb.ru/price.htm в М оскве и в М осковской области «ЛАН Ь-П РЕСС». 109263, М осква, 7-я ул. Текстильщ иков, д. 6 /1 9 тел.: (499) 178-65-85; e-m ail: lanpress@ lanbook.ru в К раснодаре и в К раснодарском крае «Л А Н Ь -Ю Г ». 350072, Краснодар, ул. Ж лобы, д. 1 /1 тел.: (861) 274-10-35; e-mail: lankrd98@ m ail.ru ДЛИ РОЗНИЧНЫ Х ПОКУПАТЕЛЕЙ: интернет-магазины : И здательство «Л ан ь»: h ttp://w w w .la n b ook .com «С ова»: h ttp ://w w w .sy m p le x .ru ; «O zon .ru »: h ttp ://w w w .o zo n .ru «Б и бли он»: h ttp : / / www.bib 1ion .ru Подписано в печать 2 5 .0 7 .1 1 . Бумага офсетная. Гарнитура Ш кольная. Ф ормат 84x108 Печать офсетная. Уел. п. л. 13,44. Тираж 1500 экз. V 32* Заказ № Отпечатано в полном соответствии с качеством предоставленных диапозитивов в ОАО «И здательско-полиграфическое предприятие «Правда Севера». 163002, г. А рхангельск, пр. Н овгородский, д. 32. Т ел ./ф акс (8182) 64-14-54; w w w .ippps.ru
«Основы современной информатики» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot