В Windows 98 встроен новый мультимедиа-проигрыватель Active Movie Control, являющийся составной частью DirectShow, который поддерживает большинство мультимедиа-форматов: MPEG аудио и видео, WAV, AVI, QwickTime Video, MIDI, AU, и AIFF, а также проигрыватель цифровых видео дисков DVD Player (Digital Video Disc).
Программа NetShow обеспечивает воспроизведение аудио- и видеофайлов из Internet в реальном масштабе времени по мере их загрузки, а программа WebTV позволяет просматривать на экране телепередачи и принимать данные, передаваемые средствами телевещания, из Internet. Для создания компьютерных игр в систему встроен DirectX 5.O.
97
97 :: Содержание
Стандартные (встроенные в систему) предикаты выполняют разнообразные функции по выполнению ввода-вывода переменных различных типов, работе с файлами, выполнению функций DOS, обработке строк, поддержке графического режима, обеспечение интерфейса с другими системами программирования (С, Паскаль) и т.д. Всего в системе содержится более 200 стандартных предикатов.
Для использования стандартных предикатов необходимо знать имя предиката, способы его вызова, число и типы значений параметров, а также режимы их передачи. Режим передачи описывается обычно в виде шаблона, который показывает, какие из параметров являются входными (в шаблоне обозначается i или вх), а какие выходными (в шаблоне обозначается о или вых) для предиката. Приведем основные стандартные предикаты Турбо-Пролога в следующем формате:
предикат(список аргументов) (типы доменов):(шаблон)
Каждый предикат дополнен кратким описанием его назначения.
makewindow(HoмOкнa, АтрЭкр, АтрРамки, СтрРамки, Строка, Столбец, Высота, Ширина,ЧиститьОкно, ПозСтрРамки, ЗнакиГраницы)
(integer, integer, integer, string, integer, integer, integer, integer, integer, integer, string): (вх, вх, вх, вх, вх, вх, вх, вх, вх, вх, вх),(вых, вых, вых, вых, вых, вых, вых,вых, вых, вых, вых)
Создает окно с номером аргумент НомОкна. Остальные аргументы предиката имеют следующий смысл:
АтрЭкр определяет цвет символа и фона.
АтрРамки - при отличном от нуля значении рисуется граница - линия обрамления окна.
СтрРамки указывает строку, помещаемую в центре верхней границы контура окна.
Строка, Столбец - вертикальная и горизонтальная координаты верхнего левого угла окна.
Высота, Ширина - высота (число строк) и ширина (число колонок) окна.
325
ЧиститьОкно определяет, будет ли чиститься окно после его создания: О = Не чистить окно; 1 = Чистить окно.
ПозСтрРамки определяет место размещения заголовка окна (внутри верхней линии рамки окна): -1 = Заголовок в центре; N = Размещает заголовок с указанной позиции. ЗнакиГраницы описывают, как рисовать рамку окна; этот аргумент состоит строго из шести символов, обозначающих: верхний левый угол, верхний правый угол, нижний левый угол, нижний правый угол, горизонтальную линию и вертикальную линию соответственно.
Например: "\218| 191\192\217\196\179" - граница из одной линии; "\201\187\200\188\205\186" -граница из двух линий; "++++ -" -другой вариант описания границы.
readchar(СимволПеременной)(char):(вых)
Читает единственный символ с текущего устройства ввода, которым является по умолчанию клавиатура, пока оно не будет изменено с помощью readdevice.
readdevice(СимвИмяФайла) (symbol):(вx), (вых)
Устанавливает или выдает текущее устройство ввода.
(вх): назначает текущее устройство ввода на открытый файл с данным Символич-ИмяФайла. Открываемый файл может быть один из стандартных файлов или любой файл пользователя с символическим именем, открытый для чтения или модификации, (вых): связывает СимвИмяФайла с именем текущего устройства ввода. Стандартные файлы, которые могут быть открыты для ввода: com"! - чтение из последовательного порта связи; keyboard - чтение с клавиатуры (по умолчанию); stdin - чтение из стандартного ввода DOS.
readint(ПеременнаяЦел)(integer):(вых)
Читает целое число с текущего устройства ввода. Преобразование символов не осуществляется, пока readint не встретит символ возврата каретки (ASCI! 13).
readln(ПеременнаяСтр)(string):(вых)
Считывает строку символов с текущего устройства ввода до символа символ возврата каретки (ASCII 13). Самая большая строка, которая может быть прочитана на экране, содержит 147 символов.
readreal(ПеременнаяВещ)(геаl):(вых)
Читает вещественное число с текущего устройства ввода, пока не прочитает символ возврата каретки. Если нажат Esc (ключ), readreal немедленно не согласуется. Readreal также не согласуется, если символы не образуют правильное вещественное число или они определяют вещественное число, превышающее допустимые границы.
write(e1,e2,e3....eN):(Bx,Bx,BX...Bx)
Выводит значения констант или переменных в текущее окно или на текущее устройство вывода. Write может быть связан с произвольным ненулевым числом аргументов ei. Аргументы не могут быть свободными переменными.
326
writedevice(СимвИмяФайла)(symbol):(вх),(выx)
Устанавливает или выдает текущее устройство вывода.
(вх): переназначает текущее устройство вывода в открытый файл с данным СимвИмя-Файлэ. Открытый файл может быть одним из стандартных символических файлов или любым пользовательским файлом, открытым для записи или для модификации, (вых): связывает СимвИмяФайла с текущим устройством вывода. Для вывода могут использоваться следующие встроенные файлы: соm1 - последовательный порт; printer - параллельный порт принтера; screen - экран монитора; stdout - стандартный вывод DOS; stderr - файл стандартных ошибок.
removewindow/0
Удаляет текущее окно и переходит к предшествующему окну.
writef(ФорматСтр,Apг1,Apг2,Apг3... ):(вх,вх....вх)
Выполняет форматированный вывод. Аргументы Арг1 - ApгN могут быть константами или переменными. Форматы задаются в виде строки ФорматСтр обычного текста, где символы % отмечают положение аргументов строки. Допустимые спецификации формата содержат обычные символы, которые печатаются без модификации, и формат спецификаций формы %-m.pf. Формат спецификаций означает: - (дефис) показывает, что поля выравниваются слева; m поле - десятичное число, описывающее минимальный размер поля; .р поле описывает или точное представление числа с плавающей точкой, или максимальное количество напечатанных в строке символов.
f поле описывает следующие форматы:
f - формат вещественного в фиксированной десятичной системе счисления (такой, как 123.4 или 0.004321);
е - формат вещественного в экспоненциальной форме представления;
g - формат вещественного в коротком формате (используется по умолчанию);
d - формат символов или целых десятичных чисел;
u - формат символов или целых чисел как десятичное число без знака;
х - формат символов или целых чисел как шестнадцатеричного числа;
с - формат символов или целых чисел как символа;
R - использует аргумент как ссылку на номер указателя базы данных (только ref домен);
X - использует аргумент как длинное шестнадцатеричное число (строки, номер указателя базы данных);
s - формат как строка (символов и строк).
asserta()(dbasedom):(вx)
Заносит факт (утверждение) в начало резидентной базы данных (домен, обозначенный как dbasedom, автоматически объявляется для каждого предиката из раздела database).
assertz(X)(dbasedom):(вx)
Заносит факт (утверждение) X в конец резидентной базы данных.
327
retract(X):(Bx)
В базе данных осуществляется поиск утверждения, голова и тело которого сопоставляются с термом X. Первое такое утверждение удаляется из базы данных. Аргумент (терм X) должен быть конкретизирован составным термом.
retractall(X):(Bx)
Удаляет из базы данных все утверждения, функтор и арность которых сопоставимы с Х.
frontchar(Стр, ПерСимв,OcтCтp)(string,char,string):
(вх,вых,вых), (вх,вх,вых), (вх,вых,вх), (вх,вх,вх),(вых,вх,вх)
(вх,вых,вых): присваивает первый символ строки Стр переменной ПерСимв, а остаток строки - переменной ОстСтр. Возможны и другие комбинации входных и выходных аргументов.
frontstr(ЧислСимв,Стр1,НачСтр,Стр2)(integer,string,string,string):(вх, вх, вх, вых)
Присваивает первые ЧислСимв символов строки Стр 1 переменной НачСтр, а остаток строки - переменной Стр2.
fronttoken(Cтp,3нaк,OcтCтp)(string, string, string):
(вх,вых,вых),(вх, вх,вых),(вх,вых,вх),(вх,вх,вх),(вых,вх,вх)
(вх,вых,вых): переменной Стр присваивается результат конкатенации Знаки ОстСтр. Знак может быть группой символов, задающих допустимое имя, либо символьным представлением числа, либо одиночным символом, отличным от пробела. В других комбинациях входных и выходных аргументов должны быть означены минимум два аргумента предиката.
cursor(Cтp,Kол)(integer,integer):(вх,вх),(вых, вых)
(вх,вх): помещает курсор в позицию с координатами (Стр,Кол).
328
325 :: 326 :: 327 :: 328 :: Содержание
Методы математической статистики позволяют выявлять закономерности на фоне случайностей, делать обоснованные выводы и прогнозы, оценивать вероятности их выполнения. Методы обладают высокой степенью универсальности, а их применимость и технология использования практически не зависит от предметной области.
Представление о задачах статистической обработки дает приведенное выше описание соответствующего раздела Maple. Еще большие возможности и удобства предоставляют специальные статистические программные пакеты (STADIA, SPSS, STATGRAPHICS, SASn др.).
194
194 :: Содержание
SWP поддерживает вычисление стандартных характеристик выборки. Выборка задается списком в фигурных скобках пли вводится из ASCII-файла с расширением .txt, в котором числа записаны в столбец или через запятую (нужно вызвать меню File). Для столбцов матрицы можно получить матрицы корреляции и ковариацни.
SWP может работать с распределениями 12 типов. Для любого из них можно стандартными средствами Maple строить графики соответствующих функций, определять вероятности попадания случайной величины в заданный интервал, решением уравнений вычислять квантили, интегрированием получать моменты. Указанные действия требуют
202
подстановки числовых значений параметров и в символьной форме выполнены быть не могут. Вызвав команду Random Numbers, можно формировать серии псевдослучайных чисел с заданным законом распределения.
Одним из важнейших признаков классификации языков программирования является принадлежность их к одному из стилей, основными из которых являются следующие стили: процедурный, функциональный, логический и обьектно-орнентированный.
Visio-схема может состоять из лицевой страницы и подложки (foreground-background pages). Подложка может содержать некоторое стандартное обрамление (рамку, угловой штамп, логотип организации или конкретного проекта, карту местности, план помещения и т.п.). Каждой лицевой странице может быть сопоставлена только одна подложка. На одну подложку могут опираться несколько лицевых страниц. Подложка сама может иметь под-
221
ложку. При подготовке лицевой страницы высвечивается результат "прозрачного" наложения всех слоев. Он же выводится при печати. Печать подложки может быть отключена.
Дополнительные страницы создаются командой New Page (Новая страница). Сразу же назначается их тип и для лицевых страниц указывается подложка; поэтому работу следует начинать с подложки. Лицевая страница может быть преобразована в подложку через меню Раде (команды Page Setup или New Page).
Подложка не может быть удалена, пока существуют налагаемые на нее лицевые страницы. Все совместно используемые страницы должны принадлежать к одному файлу.
Единицы измерения для линеек и сетки назначаются через диалоговый бокс в Раде Setup (Установка страницы). Частота сетки при изменении масштаба поддерживается приблизительно постоянной.
Размер схемы в целом может быть изменен посредством опции Size]Scale (Размер} Масштаб) того же меню, если выбрать Size отличным от Same as Print Setup (Тот же, что при печати). Переформатирование лицевой страницы не затрагивает надписи и подложку.
222
221 :: 222 :: Содержание
Операционная система MS DOS имеет развитые средства доступа ко всем аппаратным компонентам, обладает достаточно гибкой файловой системой, основанной на иерархической структуре каталогов, удобным командным языком. Последнюю версию этой ОС представляет MS DOS 6.22. Средства, предоставляемые ОС этого класса, позволяют формировать удобную операционную среду для разработки программного обеспечения. С другой стороны, на их основе достаточно просто можно создавать автоматизированные рабочие места с простыми средствами доступа к прикладным пакетам и программам.
Основными компонентами MS DOS являются:
55
базовая система ввода-вывода - BIOS (Basic Input/Output System);
системный загрузчик SB (System Bootstrap) - размещается в блоке начальной загрузки (Boot Record);
модуль расширения BIOS - располагается в скрытом файле io.sys-
модуль обработки прерываний - скрытый файл msdos.sys;
командный процессор - файл command.com;
утилиты, реализующие выполнение внешних команд MS DOS - файлы с расширением СОМ, например format.com;
драйверы устройств - размещаются в виде файлов на диске;
информация о желательных параметрах настройки MS DOS - при необходимости задается в файле конфигурации config.sys;
командный файл, при необходимости выполняемый для настройки параметров и конфигурирования MS DOS имеет имя autoexec.bat.
Рассмотрим функции некоторых из перечисленных компонентов MS DOS.
Базовая система ввода-вывода находится в ПЗУ компьютера и устанавливает связь между обладающими некоторыми фирменными особенностями техническими средствами и стандартизированным программным обеспечением, а именно с операционной системой. Ее назначение состоит в выполнении наиболее простых и универсальных функций операционной системы, связанных с вводом-выводом. BIOS в ПЗУ содержит также тест функционирования компьютера, проверяющий работу памяти и устройств при включении питания. Кроме того, он содержит программу вызова загрузчика ОС.
BIOS в ПЗУ является общей и неизменяемой частью всех возможных операционных систем для данной модели ПЭВМ.
Каждый инженер или исследователь, регулярно использующий ЭВМ для решения задач хотя бы с минимальными элементами творчества, рано или поздно приходит к необходимости применения разработки пакета подпрограмм. Этот выход на новый уровень программирования порождает и новые проблемы, о которых нужно иметь хотя бы начальное представление.
189
Важно различать метод (математический) и подпрограмму. Метод обычно может быть описан несколькими простыми формулами. Подпрограмма же должна предусматривать такие детали, как выбор величины шага; контроль погрешности; управление временной памятью; взаимодействие с другими программами; обнаружение разрывов, особенностей, зацикливания, отсутствия решения, а также континуума решений и бесконечных решений (два последних случая характерны для задач линейного программирования). Подпрограмма должна отбраковывать неправильные аргументы, корректно обрабатывать частные и особые случаи, а также любые размеры матричных объектов, допускаемые ограничениями по объему памяти (в частности, случай п = 1, т.е. скалярный). Все эти требования относятся к стандартным подпрограммам, входящим в библиотеки систем программирования и прикладные пакеты и ориентированным на широкий круг пользователей. С программы, составленной для конкретного случая, спрос меньший - но и пользы от нее меньше.
Функциональная часть пакета - это совокупность базисных процедур, комбинированием которых может быть получено решение широкого круга задач предметной области. Модульное построение функциональной части обеспечивает обозримость, структуризацию и систематизацию, возможность параллельной разработки моделей, сокращение общего объема программного текста, гибкость применения, уменьшение потребности в оперативной памяти путем избирательной загрузки только необходимых модулей.
Общие требования к функциональной части пакета:
членами библиотеки подпрограмм должна быть перекрыта вся область возможных запросов;
они должны не конкурировать, а дополнять друг друга;
библиотечная реализация должна сочетать предпринимаемые по умолчанию стандартные действия с разумным выбором опций пользователем;
пакет должен содержать классификатор задач и схемы выбора модулей;
при необходимости пользователь должен иметь возможность составить и применить вспомогательные процедуры.
Специальные средства системного обеспечения - это общий для функциональных модулей механизм приведения их в действие. К таким средствам можно отнести входной язык пакета, транслятор написанных на нем заданий, архивы программ и текстовых вставок, монитор интерактивного общения, справочную систему (help). Автоматическое планирование вычислений требует включения в систему в той или иной форме знаний о закономерностях предметной области, семантике процедур и их параметров, условиях применения отдельных модулей.
190
189 :: 190 :: Содержание
Структурированный язык запросов SQL основан па реляционном исчислении с переменными кортежами. Язык имеет несколько стандартов, наиболее распространенными из которых являются SQL-89 и SQL-92
SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SOL является непроцедурным языком и не содержит имеющихся в обычных языках программирования операторов управления, организации подпрограмм, ввода-вывода и т.п. В связи с этим SOL автономно не используется, а обычно погружен в в среду встроенного языка программирования СУБД (например, языка FoxPro СУБД Visual FoxPro) или даже процедурного языка типа C++ или Pascal.
В современных СУБД с интерактивным интерфейсом можно создавать запросы, не применяя SOL. Однако его применение в некоторых случаях позволяет расширить возможности использования СУБД. К примеру при подготовке запроса в среде Access можно перейти из окна конструктора запросов (задания запроса по образцу) в окно с эквивалентным
245
оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случае проще выполнить путем изменения оператора SQL
К числу основных операторов усеченного подмножества SQL относятся следующие:
CREATE TABLE - создание таблицы;
DROP TABLE - удаление таблицы;
CREATE INDEX - создание индекса;
DROP INDEX - удаление индекса;
ALTER TABLE - изменение структуры таблицы;
SELECT, UPDATE, INSERT, DELETE - выборка, изменение, вставка и удаление записей.
К дополнительным операторам SQL относятся следующие:
CREATE DATABASE, SHOW DATABASE, START DATABASE, STOP DATABASE, DROP DATABASE - создание, просмотр, активизация, закрытие, удаление БД;
CREATE VIEW, DROP VIEW - создание, удаление выборки (представления);
CREATE SYNONYM - создание синонима;
GRANT, REVOKE - назначение, удаление привилегии для работы с выборками и таблицами.
Рассмотрим подробнее важнейший из перечисленных операторов - оператор SELECT.
В упрощенном виде оператор имеет следующий формат:
SELECT [ALL|DISTINCT]
FROM
[WHERE ]
[GROUP BY [, ]...]
[HAVING ]
[ORDER BY [,]...]
Оператор SELECT позволяет выполнять выборку и вычисления над данными одной или нескольких таблиц. Результатом выполнения оператора является ответная таблица, которая может иметь (ALL) или не иметь (DISTINCT) повторяющиеся строки.
В списке данных можно задавать имена столбцов и выражения над ними, к примеру арифметические. Если записи отбираются из нескольких таблиц, то используют составные имена .
Пример. Имеется таблица Goods (товары) с полями: Code (код), Name (наименование) и Cost (стоимость). Требуется вывести стоимости и коды товаров, стоимость которых не превышает 500 единиц.
Для решения поставленной задачи можно записать оператор SELECT следующим образом:
SELECT Code, Cost
FROM Goods
WHERECosf
В различных СУБД состав операторов SQL может несколько отличаться от рассмотренного нами.
246
244 :: 245 :: 246 :: Содержание
Одним из свойств алгоритма является дискретность - возможность расчленения процесса вычислений, предписанных алгоритмом, на отдельные этапы, возможность выделения участков программы с определенной структурой. Можно выделить и наглядно представить графически три простейшие структуры:
последовательность двух или более операций;
выбор направления;
повторение.
Любой вычислительный процесс может быть представлен как комбинация этих элементарных алгоритмических структур. Соответственно, вычислительные процессы, выполняемые на ЭВМ по заданной программе, можно разделить на три основных вида:
Рис. 2.1. Пример линейного алгоритма
40
линейные;
ветвящиеся;
циклические.
Линейным принято называть вычислительный процесс, в котором операции выполняются последовательно, в порядке их записи. Каждая операция является самостоятельной, независимой от каких-либо условий. На схеме блоки, отображающие эти операции, располагаются в линейной последовательное!и.
Линейные вычислительные процессы имеют место, например, при вычислении арифметических выражений, когда имеются конкретные числовые данные и над ними выполняются соответствующие условию задачи действия. На рис. 2.1 показан пример линейного алгоритма, определяющего процесс вычисления арифметического выражения
y=( b2- ac):(a+c).
Вычислительный процесс называется ветвящимся, если для его реализации предусмотрено несколько направлений (ветвей). Каждое отдельное направление
Рис. 2.2. Пример разветвляющегося алгоритма
41
процесса обработки данных является отдельной ветвью вычислений. Ветвление в программе - это выбор одной из нескольких последовательностей команд при выполнении программы. Выбор направления зависит от заранее определенного признака, который может относиться к исходным данным, к промежуточным пли конечным результатам. Признак характеризует CBOIICTBO данных и имеет два или более значений.
Ветвящийся процесс, включающий в себя две ветви, называется простым, более двух ветвей - сложным. Сложный ветвящийся процесс можно представить с помощью простых ветвящихся процессов.
y= | { | a +b, если Х ? 0; |
с/b, если Х> 0. |
Как и многая информация, графика может быть сжата. Это выгодно с точки зрения экономии памяти компьютера, так как, например, высококачественные изображения, как уже говорилось, имеют размеры до нескольких десятков мегабайтов. Для файлов графических изображений разработаны множество схем и алгоритмов сжатия, основными из которых являются следующие:
групповое сжатие;
кодирование методом Хаффмана;
сжатие по схеме LZW;
арифметическое сжатие;
сжатие с потерями,
преобразование цветов RGB в цвета YUV.
В основе большинства схем сжатия лежит использование одного из следующих свойств графических данных: избыточность, предсказуемость и необязательность. В частности, групповое кодирование (RLE) основано на использовании первого свойства. Кодирование по методу Хаффмана и арифметическое кодирование, основанные на статистической модели, используют предсказуемость, предлагая более короткие коды для более часто встречающихся пикселов. Алгоритмы сжатия с потерями основаны на избыточности данных.
Следует учесть, что алгоритм, обеспечивающий большую степень сжатия, обычно более сложный и поэтому требует для распаковки данных больше процессорного времени.
Рассмотрим подробнее несколько алгоритмов сжатия.
В процессе работы компьютера содержимое диска меняется: добавляются новые файлы, удаляются ненужные, изменяется объем файлов и т.д. Для выполнения этих операций необходимо отслеживать распределение пространства диска между файлами. В MS DOS эта задача решается с помощью таблицы размещения файлов. Для каждого файла в FAT создается цепочка элементов, каждый из которых указывает область фиксированной длины (кластер), занимаемую частью файла на диске. В каталоге, содержащем имя файла, имеется указатель к началу цепочки. При стирании файла элементы FAT и адресуемые ими области данных освобождаются (помечаются как свободные) и могут быть использованы для другого файла.
Достоинством такой организации является возможность осуществления прямого доступа к данным файла. Недостатком является постепенное фрагментирование диска
63
при активной работе г файловой системой но уничтожению, созданию п изменению объемов файлов. П рн этом занимаемое файлами пространство "разорвано" но всему диску. Фрагментпроваппе значительно увеличивает время доступа к данным на диске.
Область данных занимает большую часть диска - от конца корневого каталога до последнего сектора. Участки памяти из области данных выделяются группами из одного пли нескольких последовательных секторов, называемых кластерами. Размер сектора составляет 512 байтов.
Размеры кластера (число секторов) определяются операционной системой в зависимости от размера логического привода (размера раздела диска, если диск разбит на несколько разделов). Использование кластеров большой длины уменьшает фрагментированпе диска. Кроме того, уменьшается размер FAT, что увеличивает быстродействие. С другой стороны, слишком большой размер кластера ведет к неэффективному использованию пространства диска при наличии большого числа файлов небольшой длины (табл. 3.2).
Таблица 3.2
Потери дискового пространства
Размер раздела диска, Мб | Размер кластера, кб | Потери на 1000 файлов, Мб |
16-127,9 | 2 | 1 |
128-255,9 | 4 | 2 |
256-511,9 | 8 | 4 |
512-999,9 | 16 | 8 |
Технология "клиент-сервер" пришла на смену централизованной схеме управления вычислительным процессом на базе средней или большой ЭВМ (мэйнфрейма).
В централизованной схеме управления все вычислительные ресурсы, данные и программы их обработки были сконцентрированы в одной ЭВМ. Пользователи имели доступ к ресурсам машины с помощью терминалов (дисплеев). Терминалы подключались к ЭВМ через интерфейсные соединения или удаленные телефонные линии связи (так называемые удаленные терминалы). Основной функцией терминала было отображение информации, представляемой пользователю. К достоинствам этой схемы можно отнести удобство администрирования, модификации программного обеспечения и защиты информации. Недостатком схемы является ее низкая надежность (выход из строя ЭВМ влечет за собой разрушение вычислительного процесса), сложность масштабирования (наращивания мощности) модификации аппаратного и программного обеспечения, как правило, резкое снижение оперативности при увеличении числа пользователей системы и другие.
В архитектуре "клиент-сервер" место терминала заняла ПЭВМ (клиентская), а мэйнфрейма - один или несколько мощных компьютеров, специально выделенных для решения общих задач обработки информации (компьютеры-серверы). Достоинством этой модели является высокая живучесть и надежность вычислительной системы, легкость масштабирования, возможность одновременной работы пользователя с несколькими приложениями, высокая оперативность обработки информации, обеспечение пользователя высококачественным интерфейсом и т.д.
Заметим, что эта весьма перспективная и далеко не исчерпавшая себя технология получила свое дальнейшее развитие. Совсем недавно стали говоршь о технологии Intranet,
404
которая появилась в результате перенесения идей сети Internet (см. раздел 29) в среду корпоративных систем. В отличие от технологии "клиент-сервер", эта технология ориентирована не на данные, а на информацию в ее окончательно готовом к потреблению виде. Технология Intranet объединяет в себе преимущества двух предыдущих схем.
Вычислительные системы, построенные на ее основе, имеют в своем составе центральные серверы информации и распределенные компоненты представления информации конечному пользователю (программы-навигаторы, или броузеры). Детальное рассмотрение этой технологии выходит за рамки настоящего пособия.
Остановимся вкратце на понятиях, связанных с технологией "клиент-сервер", поскольку она все еще доминирует в локальных вычислительных сетях.
При взаимодействии любых двух объектов в сети всегда можно выделить сторону, предоставляющую некоторый ресурс (сервис, услугу), и сторону, потребляющую этот ресурс. Потребителя ресурса традиционно называют клиентом, а поставщика - сервером.
В качестве ресурса можно рассматривать аппаратный компонент (диск, принтер, модем, сканер и т.д.), программу, файл, сообщение, информацию или даже ЭВМ в целом. Отсюда происхождение множества терминов: файл-сервер или диск-сервер, принт-сервер или сервер печати, сервер сообщений, SQL-сервер (программа обработки запросов к базе данных, сформулированных на языке SQL), компьютер-сервер и т.д. Очевидно, нее эти серверы имеют соответствующих клиентов.
С точки зрения программного обеспечения, технология "клиент-сервер" подразумевает наличие программ-клиентов и программ-серверов. Клиентскими программами обычно являются такие программы, как текстовые и табличные процессоры. В роли серверных программ чаще всего выступают системы управления базами данных. Примером типичной пары программ вида "клиент-сервер" можно считать программу TCKCTOBOI о процессора, обрабатывающую документ, в котором содержится таблица с информацией из базы данных.
Некоторая программа, выполняемая в сети, по отношению к одним программам может выступать в роли клиента и в то же время являться сервером для других программ. Более того, за некоторый интервал времени роли клиента и сервера между одними и теми же программами могут меняться.
Разновидностью более сложных клиент-серверных моделей является трехзвенная модель "сервера приложений" - AS-модель (Application Server).Эта модель описывает процесс функционирование сетей, использующих базы данных. Согласно AS-мо-дели, каждая их трех основных функций (управление данными, прикладная обработка и представление информации конечному пользователю) реализуется па отдельном компьютере.
405
400 :: 401 :: 402 :: 403 :: 404 :: 405 :: Содержание
Лексикон 2.0 представляет собой первый отечественный текстовый процессор для Windows фирмы Микроинформ. По своим возможностям (реализованным и потенциальным) он сопоставим с популярными текстовыми процессорами, такими как Word и Ami Pro. В частности, Лексикон для Windows поддерживает: разнообразное семейство шрифтов различной гарнитуры и национальной принадлежности; возможности ручного и автоматизированного форматирования абзацев и других элементов документа; режим WYSIWYG просмотра подготавливаемых документов в их реальном виде. Он имеет удобный пользовательский интерфейс, среде 1ва встраивания графических изображений и определенные возможности настольных издательских систем.
Настоящая версия текстового процессора имеет заметные ограничения (слабо развитые средства работы с графикой, таблицами и формулами; отсутствие средств
106
вестраиваиия объектов по технике OLE; отсутствие функций автосохранения и некоторые другие) и определенные некорректности в работе, требующие устранения.
Права на торговую марку Лексикон получила фирма "Арсеналъ" В 1997 г. появился текстовый процессор Лексикой 97. Этот текстовый процессор совместим с Word и имеет схожий интерфейс. По своим возможностям Лексикон 97, по-видимому, сопостовим с предшественником. Одним из его достоинств является наличие встроенного эверестнческого анализатора старого текста. Это позволяет открывать файлы предыдущих версий Лексикона с сохранением абзацев и оформления таблиц.
Под текстурой понимают специфический характер тона (цвета) в изображении объекта или на его фрагменте. К текстуре также относят наличие на изображении характерных линий.
376
Текстура может представлять упорядоченный характер тона в виде геометрически правильных или почти правильных рисунков. Подобную текстуру имеют, например, кирпичная кладка, кафельная облицовка, шахматная доска и так далее. Другой тип - стохастическая структура. Она присуща естественным объектам и, как правило, является следствием шероховатости наблюдаемых объектов.
Одним из принципов формирования текстуры изображения является перенос регулярного или стохастического рисунка на поверхность объекта. Для нанесения рисунка необходимо решить задачу преобразования систем координат. Если рисунок задан в пространстве текстуры в системе координат (u,w), а поверхность - в системе координат (?, ?), то для переноса рисунка нужно найти или задать функцию отображения одного пространства на другое, т.е. определить соотношения ?=f(u, w), ?=g(u, w)
Во многих практических случаях функции отображения линейны: ?=Au+Bw+C, ?=Du+Ew+F Коэффициенты A, В, С, D, Е, F вычисляются из соотношений между известными точками в системе координат.
Характерные точки узора из пространства текстуры переносятся в объектное пространство, затем в пространство изображений и определенным образом соединяются отрезками прямых. В процедурах нанесения узоров часто используется разбиение поверхностей и узоров на фрагменты.
При переносе на поверхность предмета текстуры, представляющей непрерывное регулярное и случайное поле яркости, наиболее подходящим является метод обратного трассирования лучей. Центр каждого пиксела изображения проецируется на поверхность предмета и по координатам точки на поверхности определяется соответствующая ей точка в пространстве текстуры. Чтобы устранить эффекты, связанные с пространственной дискретизацией, используют процедуры сглаживания. Достаточно простой процедурой сглаживания является трассирование четырех точек, соответствующих углам пиксела, и использование среднего значения яркости текстуры для этих четырех точек.
Использование четырех точек пиксела позволяет оценивать достаточность процедуры сглаживания. Если разность яркостей для указанных четырех точек больше некоторой пороговой величины, можно произвести разбиение пиксела на четыре части и более точно вычислить яркость для пиксела.
Формирование стохастических текстурных полей, близких к естественным, представляет сложную в вычислительном отношении процедуру. Для синтеза текстур предпочтительным считаются авторегрессионная модель и модели с использованием методов линейного программирования. Синтез осуществляется с использованием статистических характеристик текстур-прототипов: плотности вероятности и автокорреляционной функции. Для определения плотности вероятности в пределах некоторого окна измеряют гистограмму и для ее отображения используют первые четыре момента - среднее значение, стандартное отклонение, ассиметрию и эксцесс. Форму автокорреляционной функцию выражают через ее четыре центральных пространственных момента. В результате формируется восьмимерный вектор признаков текстуры. Наряду с описанным основным вариантом определения параметров, характеризующих стохастическую текстуру, используют ряд упрощенных процедур, обеспечивающих снижение вычислительных затрат. Синтезированные на основе прототипов стохастические текстуры хорошо
377
моделируют естественные шероховатые поверхности, если они обладают сравнительно небольшой кривизной.
Для поверхностей со значительной кривизной (шар, эллипсоид и близкие к ним) перенос на них даже стохастической текстуры не обеспечивает их реалистичного вида. Возникает ощущение, что текстура нарисована на гладкой поверхности. Причина этого заключается в том, что текстура, сформированная без учета формы объекта, не передает изменений освещенности, обусловленных рельефом поверхности. Для реальных шероховатых поверхностей вектор нормали содержит небольшую случайную составляющую, которая определяет характер изменения освещенности в изображении. Чтобы получить изображение, близкое к реалистичному, необходимо смоделировать именно этот фактор.В методе моделирования рельефа поверхности Q(u,w) с помощью вспомогательной функции F(u,w) в направлении нормали к поверхности вносится возмущение, что приводит к изменению отражения от элементов вновь образованной поверхности.
378
376 :: 377 :: 378 :: Содержание
Формат TIFF сохраняет множество данных изображения в помеченных полях, что и определило его название ("Формат файла помеченного изображения"). Каждое помеченное поле хранит информацию о растровом рисунке или ссылку на другие поля. Программа, читающая файл, может пропускать неизвестные или ненужные ей поля. Эта
366
многогранность позволяет формату находить применение в различных компьютерных системах. Кроме того, формат TIFF может сохранять разнообразные дополнительные данные о растровом рисунке, включая: кривую коррекции для изображения с оттенками серого; поля детальной информации об изображении (название программы, автора, дату создания и комментарии); размер изображения и разрешающую способность; детальную информацию о цвете оригинала.
Большинство программ, читающих файл TIFF, способны без проблем прочесть файлы этого формата, созданные на других системах. Структура формата TIFF изменчива, что позволяет ему хранить разнообразные типы изображений.
Файлы TIFF начинаются с небольшого заголовка, за которым следует указатель на первый набор помеченных полей. Помеченные поля собираются в каталоги файла изображения (КФИ), который просто содержит счетчик количества помеченных полей и указатель на первое из них. Длина помеченного поля равна 12 байтов, поэтому считывающая программа может быстро найти каждое из них.
Заголовок файла. Заголовок файла TIFF составляет 8 байтов. Первые 2 байта указывают, какой формат у файла, следующие 2 байта содержат номер версии, последние 4 байта заголовка указывают на первый КФИ. Обычно первый КФИ должен следовать сразу после заголовка, но в файле TIFF все локализуется с помощью указателей.
Католог файла изображения. Содержит 2-байтовый счетчик общего количества помеченных полей, за которыми следуют сами помеченные поля. Двухбайтовая длина ограничивает предел каждого КФИ 256-ю помеченными полями.
Помеченные поля. Длина помеченного поля равна 12 байтов. Первые 2 байта - код метки (тип помеченного поля), следующие 2 байта содержат тип данных, на которые указывает поле. Тип данных позволяет программе узнать, сколько байтов нужно читать для каждого отдельного элемента данных. Всего пять различных типов: 1-байтовый код символа ASCII; 1-байтовое целое число; 2-байтовое целое число; 4-байтовое целое число, 8-байтовое дробное число.
Следующие 4 байта показывают, на сколько различных элементов данных указывает помеченное поле. Если данные занимают в общем 4 байта или меньше, то элементы данных содержатся в последних 4 байтах помеченного поля. Если же данные занимают больше 4 байтов, то последние 4 байта помеченного поля используются в роли указателя на данные.
Сжатие. Файлы данного формата способны хранить пиксельные данные, сжатые с помощью разнообразных схем, например, кодированием по методу Хаффмана.
Важным элементом в работе инженера и организатора является проектирование разнообразных схем - организационных, структурных, маршрутных, логических и т.п. Их общей чертой является наличие некоторого стандартного для каждой предметной области набора типовых элементов (для примера сошлемся на блок-схемы алгоритмов).
Разумеется, вычерчивание схем возможно средствами любого графического редактора или универсального текстового процессора класса Microsoft Word. Однако в указанных целях гораздо удобнее воспользоваться системой Visio 4 (Visio Corp.) В ее состав входят несколько десятков комплектов трафаретов (stencils), ориентированных на весьма разнообразные применения. Пользователь, выбрав нужный трафарет, переносит из него в рабочий лист необходимые блоки, а затем размножает их, масштабирует, перемещает, соединяет линиями и стрелками, снабжает надписями и т.п.
Visio 4 является полноценным Windows-приложением, и разработанные в ней схемы переносимы в другие приложения (в частности, поддерживается механизм OLE-2). Технология работы, содержание меню, состав панели инструментов и назначение "горячих клавиш" максимально приближены к принятым в продуктах Microsoft Office. Ценным достоинством Visio 4 является возможность изготовления с ее помощью крупномасштабных плакатов, склеиваемых из листов стандартного формата.
Экспорт и импорт файлов для работы с другими приложениями производится в форматах CGM, EPS, PCX, TIP, BMR WMF через меню File (Файл). Соответственно Visio можно использовать для преобразования форматов загруженных файлов. По команде Tools \ Options (Сервис | Параметры) можно корректировать пути для записи формируемых рисунков.
Для работы с системой существенно знание базовых определений.
Фигура (Shape) - базовый графический элемент, из комбинации которых создается схема (drawing).
Трафарет (Stencil) - совокупность базовых элементов, объединяемых общностью предметной области.
Стиль (Style) - совокупность форматов (размер шрифта, толщина и цвет линий, заполнение), имеющая имя и сохраняемая со стандартом или схемой.
Шаблон (Ternplate) - файл, содержащий стили и установки для некоторого вида схем и открывающий соответствующие трафареты. Создание новой схемы начинается с вызова необходимого трафарета или стандарта.
Перечень типов данных и краткая их характеристика приведены в табл. 21.1.
Приведенные в первой колонке таблицы буквенные обозначения используются для отображения типа используемых переменных. Просмотреть список переменных можно по команде DISPLAY MEMORY.
Таблица 21.1
Типы данных Visual FoxPro
Обозначение | Тип | Диапазон | Объем памяти, байт | Описание |
А | Array | Массив данных некоторого типа | ||
В | Double | от +/-4,9406564854 1247E-324 до +/-1, 797693 13486232E+308 | 8 | Число с плавающей точкой двойной точности |
С | Character | Любые символы | 1-254 | Текстовая (символьная) строка |
D | Date | от 01/01/100 до 12/31/9999 | 8 | Дата |
F | Float | от -0,9999999999 ? 10+19 до 0,9999999999 ?10+20 | 8 | Такое же, как Numeric |
G | General | Определяется доступной памятью | 4 (в dbf) | Ссылка на OLE-объект |
1 | Integer | - 2147483647 до 2147483646 | 4 | Число целое |
L | Logical | 1 | Логическое значение | |
М | Memo | Определяется доступной памятью (в dbf) | 4 | Ссылка на примечание |
N | Numeric | от -0,9999999999 ? 10-+19 до 0,9999999999 ? 10 +20 | 8 | Число с фиксированной 1 очко и целое или дробное; допускает от 1 до 20 символов в таблице |
Т | DateTime | от 01/01/100 до 12/31/9999 и от 00:00:00 утра до 23:59:59 вечера | 8 | Дата и время |
Y | Currency | от -22337203685477,5807 до 922337203685477,5807 | 8 | Денежное значение |
253
Данные каждого типа могут храниться в полях таблиц этого же типа. Заметим, что Visual FoxPro не имеет команд определения типов переменных. Определение типов выполняется при присваивании переменным первоначальных значений. Рассмотрим подробнее перечисленные типы данных.
Character. Текстовый (символьный) тип используется для побайтного хранения символьных строк длиной от 1 до 254 символов. Элементами строк могут быть печатные знаки - буквы, цифры, пробелы и знаки препинания. Константа символьного типа должна быть заключена в разделители, например:
"строка" 'строка' [строка]
Возможно сравнение символьных строк в соответствии с алфавитным порядком, например:
Конфигурация соединения элементов в сеть (топология) во многом определяет такие важнейшие характеристики сети, как ее надежность, производительность, стоимость, защищенность и т.д.
400
Одним из подходов к классификации топологий ЛВС является выделение двух основных классов топологий: широковещательных и последовательных.
В широковещательных конфигурациях каждый персональный компьютер передает сигналы, которые могут быть восприняты остальными компьютерами. К таким конфигурациям относятся топологии "общая шина", "дерево", "звезда с пассивным центром". Сеть типа "звезда с пассивным центром" можно рассматривать как разновидность "дерева", имеющего корень с ответвлением к каждому подключенному устройству.
В последовательных конфигурациях каждый физический подуровень передаем информацию только одному персональному компьютеру. Примерами последовательных конфигураций являются: произвольная (произвольное соединение компьютеров), иерархическая, "кольцо", "цепочка", "звезда с интеллектуальным центром", "снежинка" и другие.
Вкратце рассмотрим три наиболее широко распространенные (базовые) топологии ЛВС: "звезда", "общая шина" и "кольцо".
В случае топологии "звезда" каждый компьютер через специальный сетевой адаптер подключается отдельным кабелем к центральному узлу (рис. 28.1). Центральным узлом служит пассивный соединитель или активный повторитель.
Рис.28.1. Топология "звезда"
Недостатком такой топологии является низкая надежность, так как выход из строя центрального узла приводит к остановке всей сети, а также обычно большая протяженность кабелей (это зависит от реального размещения компьютеров). Иногда для повышения надежности в центральном узле ставят специальное реле, позволяющее отключать вышедшие из строя кабельные лучи.
Топология "общая шина" предполагает использование одного кабеля, к которому подключаются все компьютеры.
Информация по нему передается компьютерами поочередно (рис.28.2).
Рис.28.2. Топология "общая шина"
Достоинством такой топологии является, как правило, меньшая протяженность кабеля, а также более высокая надежность чем, у "звезды", так как выход из строя отдельной станции не нарушает работоспособности сети в целом. Недостатки состоят в том, что обрыв основного кабеля приводит к неработоспособности всей сети, а также слабая защищенность информации в системе на физическом уровне, так как сообщения,
401
посылаемые одним компьютером другому, в принципе, могут быть приняты и на любом другом компьютере.
При кольцевой топологии данные передаются от одного компьютера другому по эстафете (рис. 28.3). Если некоторый компьютер получает данные, предназначенные не ему, он передает их дальше по кольцу. Адресат предназначенные ему данные никуда не передает.
Рис.28.3. Топология "кольцо"
Достоинством кольцевой топологии является более высокая надежность системы при разрывах кабелей, чем в случае топологии с общей шиной, так как к каждому компьютеру есть два пути доступа. К недостаткам топологии следует отнести большую протяженность кабеля, невысокое быстродействие по сравнению со "звездой" (но соизмеримое с "общей шиной"), а также слабая защищенность информации, как и при топологии с общей шиной.
Топология реальной ЛВС может в точности повторять одну из приведенных выше или включать их комбинацию. Структура сети в общем случае определяется следующими факторами: количеством объединяемых компьютеров, требованиями по надежности и оперативности передачи информации, экономическими соображениями и т.д.
Перечислим некоторые из трафаретов, сохраняя для удобства работы с системой их английские названия.
212
Basic - правильные многоугольники с числом сторон от 3 до 8, круг, эллипс, овал; разнообразные по форме и направлению стрелки, в том числе криволинейные; соединители фигур.
Block diagram - три комплекта геометрических фигур, стрелок и соединителей в большом числе вариантов, с оттенением и объемной перспективой.
Border - элементы фигурных рамок и заполнителей для орнаментов ("греческий", "египетский", звезды, шахматная клетка, волны, зигзаг и т.п.).
Callout - средства выносных пояснений: "баллоны", ярлыки, оттиски печатей, окна, кнопки, "вспышки".
Chart - элементы диаграмм (столбчатых, объемных, секторных) и графиков, в частности координатные оси, экспоненциальные и "нормальные" кривые, вспомогательные ярлыки.
Clipart - разнообразные миникартинки: люди, средства связи, вычислительная техника, транспортные средства, чашка кофе и др.
Connectors - расширенный набор соединительных элементов.
Electrical - инверторы, схемы И, ИЛИ, диод, триод, "земля", батарея, резистор, конденсатор, сигнал типа меандра, часы.
Flowchart (два набора) - элементы схем алгоритмов (все стандартизованные обозначения, внутри- и межстраничные соединители, средства разветвления и соединения потоков, базы данных).
Forms - рамки для текста, шаблоны для таблиц и графиков (в частности, заготовки
для логарифмической сетки), текстовые блоки для набора шрифтом Arial в 8,10 и 10 pt.
Maps - обширная группа наборов географических карт, изображающих контуры штатов США, стран, регионов и континентов, а также обозначений на картах и схемах и знаков дорожного движения.
Network - элементы сетей связи и компьютерных сетей: устройства ЭВМ; малые и большие ЭВМ разных типов, включая Cray; типичные сетевые структуры; антенна спутниковой связи и сам спутник.
Office Layout - обозначения офисного оборудования.
Project Timeline - средства сетевого планирования (PERT-диаграммы и графики Ганта).
Переключение активности панелей выполняется нажатием клавиши . Признаком активности панели является подсветка имени привода в верхней части панели (рис. 4.1).
Связывание панелей с логическим приводом выполняется с помощью комбинации клавиш + (для левой панели) и + (для правой панели). При этом появляется окно с перечнем логических приводов для выбора.
Перемещение по древовидной структуре рабочего каталога (текущего каталога на активной панели) выполняется с с помощью клавиш управления курсором и . Для перехода на уровень родительского каталога нужно подсветить верхнюю строку в перечне (с символами "..") и нажать .
Управление формой отображения информации на левой и правой панелях выполняется с помощью команд и опций меню Правая панель (Right) и Левая панель (Left) соответственно. В частности, установка опции Краткий формат (Brief) предписывает краткое отображение информации о файлах и каталогах (выводятся только имена). При установке опции Полный формат (Full) предписывается вывод имен файлов и каталогов, дат и времен их последнего изменения, размеров файлов. Здесь же можно выбрать вариант сортировки имен файлов и каталогов: по имени, по расширению, по дате и времени последнего обновления.
При выборе опции Дерево каталогов (Tree) на правой или левой панелях устанавливается отображение структуры каталога альтерантивной панели в виде дерена. 11ри установке на заданной панели опции Состояние (Info) па ней отображается информация об общем и свободном объеме основной памяти и внешней памяти привода, связанного с альтернативной панелью.
69
69 :: Содержание
Основными средствами управления процессом вычислений в Прологе являются стандартные предикаты fail (неуспех) и ! (отсечение).
Назначение этих предикатов и методы их использования рассмотрим на примере следующей программы на Турбо-Прологе:
domains
st=student(fam,pr,oc)
312
fam.pr=symbol
num,oc=integer
g=gr(num,st)
predicates
kurs_22(g)
clauses
kurs_22(gr(261 ,student("ПETPOB П.Р.","Программирование",5))).
kurs_22(gr(261,student("ИBAHOB Б.О. ","Операционные системы",5))).
kurs_22(gr(261,student("CИДOPOB Т.К.","Системы управления",4))).
kurs_22(gr(262,student("ЖИГAPEB С.И. "."Программирование''3))).
kurs_22(gr(262,student(" ДЕМИН ", "Системы управления", 5))).
kurs_22(gr(261 ,student(" ПETPOB П.Р.","Иностранный язык",4))).
kurs_22(gr(263,student(" СИДОРОВ ","Операционные системы",5)))
Приведенная программа в разделе clauses содержит утверждения-факты, в данном случае информацию о результатах пересдачи экзаменов студентами соответствующих групп (номер группы - первый компонент структуры gr) по соответствующим дисциплинам (фамилия, дисциплина, оценка - компоненты структуры student, которая входит в состав структуры gr). Если теперь после компиляции программы в качестве внешней цели ввести запрос:
kurs_22(X)
то в диалоговом окне будет выведена информация:
X=gr(261 ,student("ПETPOB П.Р.","Программирование",5))
Х= gr (261 ,student("ИBAHOB Б.О.", " Операционные системы",5))
Х= gr (261,student ("СИДОРОВ Т.К.", "Системы управления " ,4))
X=gr (262, student(" ЖИГAPEB С.И. "."Программирование" 3 ))
X=gr (262, student(" ДEMИH С.Л. ", "Системы управления", 5))
Х= gr (261 ,student(" ПETPOB П.Р.","Иностранный язык",4))
X=gr (263, student("CИДОРОВ Е.P. ","Операционные системы",5))
7 Solutions
т.е. будут найдены все варианты решений, так как в запросе не задано ограничений на значения переменной X.
Наложим ограничение, например, на номер учебной группы. Для внешнего запроса
kurs_22(gr(261,X))
результатом будет:
X=student(" ПETPOB П.Р.","Программирование",5)
X=student(" ИBAHOB Б.О."."Операционные системы",5)
X=student(" СИДОPOB Т.К.", "Системы управления", 4)
X=student(" ПETPOB П. R", "Иностранный язык",4)
4 Solutions
Продемонстрируем еще один внешний запрос:
kurs_22(gr(Z,student(" ПETPOB П.Р.", X, Y)))
313
Система ответит:
Z=261,Х=Программирование, Y=5
Z=261, Х=Иностранный язык, Y=4
2 Solutions
Если теперь любой из этих запросов сделать внутренним, т.е. записать в разделе goal, откомпилировать и выполнить программу, то, кроме сообщения Press the SPACE bar, в диалоговом окне не будет результатов, так как мы не задавали предикатов вывода значений результата внутреннего запроса.
Изменим внутренний запрос:
goal
kurs_22(X),write(X)
Здесь для вывода значений переменной X после сопоставления используется системный предикат write(...). Результаты такого запроса будут помещены в диалоговое окно в виде:
gr(261 ,student(" ПETPOB П.Р.","Программирование",5))
т.е. будет найдено первое подходящее решение. Если теперь не меняя запроса изменить порядок предложений в программе, например, поменять местами первое со вторым, то результат будет другим:
gr(261 ,student(" ИBAHOB Б.О.", "Операционные системы",5))
Как видим, Пролог чувствителен к порядку предложений в программе: правила просматриваются сверху вниз. Для того, чтобы заставить Пролог осуществить поиск всех вариантов решения задачи при использовании внутренней цели в программе (в данном варианте это вывод на экран всех фактов), необходимо организовать циклический перебор альтернативных решений. В Прологе это можно сделать различными способами.
Один из них - использовать свойство Пролога выполнять поиск альтернативного решения при неудачной попытке применения текущего. В этом случае Пролог выполняет откат до ближайшей альтернативы, восстанавливает первоначальные условия поиска и процесс начинается заново с найденной новой альтернативы. Для организации таких вычислений в языке есть специальный предикат fail, который всегда завершается неуспехом и вызывает откат до ближайшей альтернативы.
Для цели перебора всех альтернативных фактов в примере и вывода их на экран в состав программы введем нульместный предикат show и правило вида: show:-kurs_22(X),write(X),fail. Для этого в раздел predicates добавим строку show, в разделе clauses поместим строку show:- kurs_22(X),write(X),fail.
Зададим также внутреннюю цель вида:
goal
show.
В этом случае на экран будут выведены все 7 альтернативных решений - после нахождения первого переменная X будет означена константой первого факта, полученное значение переменной X сопоставляется аргументу предиката write(X), который выведет его на экран, после чего выполняется предикат fail, который завершается неуспехом и
314
Пролог выполнит откат до ближайшего недетерминированного предиката (т.е. имеющего несколько вариантов правил), а это в нашем случае предикат kurs_22(X), будет выбран второй факт, выполнено сопоставление и т.д. до тех пор, пока не будут перебраны все альтернативы.
Предписать Прологу выполнять откат можно не только с помощью предиката fail -любой неуспешно завершенный предикат вызывает откат до ближайшей альтернативы (стоящего от него левее в теле правила). Продемонстрируем это на нашем примере. Пусть необходимо получить и вывести на экран информацию о студентах, пересдавших экзамен по дисциплине "Программирование".
Изменим предикат show:
show:-kurs_22(gr(X,student(Y,Z, K))),
Z="Программирование",
write( " Гpyппa-" . X, " Студент-", Y, " Оценка-", K),
nl,
fail.
Тогда для внутреннего запроса:
goal
show
на экран будет выведено:
Группа-261 Студент-ПЕТРОВ П.Р. Оценка-5
Группа-262 Студент-ЖИГАРЕВ С.И. Оценка-3
Таким образом, сравнение 7="Программирование ", выполняет двоякую роль: с одной стороны, это фильтр, который не допускает выполнения предиката write(...) при неуспешном сравнении, а с другой - вызывает из-за неуспешного сравнения откат до ближайшей альтернативы. При этом если бы не было предиката fail, было бы получено только первое решение - fail обеспечивает перебор всех альтернатив. Предикат nl является стандартным, он выполняет переход на следующую строку при выводе информации на экран.
В Турбо-Прологе имеются средства, с помощью которых можно заблокировать поиск с возвратом. Для этих целей служит специальный предикат, который называется отсечение (cut) и обозначается восклицательным знаком. Для демонстрации его использования в нашем примере добавим предикат отсечения в правило show:
show:-kurs_22(gr(X,student(Y,Z,K))),
Z="Программирование",!,
write(Tpynna-",X," Студент-", Y ," Оценка-",К),
nl,
fail.
Тогда для внутреннего запроса:
goal
show
315
на экране будет выведена информация:
Группа-261 Студент-ПЕТРОВ П.Р. Оценка-5
В данном варианте после успешного сравнения Z="Программирование " предикат ! прекращает условия поиска после формирования условия "неуспех" предикатом fail.
Таким образом, использование в правиле предиката отсечения означает, что в дальнейшем не будет производиться перебор других аргументов предикатов, использованных в этом правиле до знака отсечения после формирования признака неуспеха любым из предикатов, стоящим в правиле правее предиката !. Но это не означает, что не будут перебираться альтернативные варианты по неуспеху для других предикатов, стоящих за !.
Преобразуем предикат show к виду:
show:-kurs_22(gr(X,student(Y, Z, K))),
Z="Программирование ", ! , К=3,
write(" Группа -", X ," Студент-", Y, " Оценка-",К),
nl,
fail.
В этом случае не будет получено результатов, так как после поиска первого решения для Z="Программирование " переменная К=5 и сравнение 5#3 сформирует неуспех, который не приведет к возврату для поиска следующей альтернативы для предиката kurs_22(gr(X,student( Y.Z.K")), так как условия возврата уже сброшены отсечением.
Введем в правило еще один предикат kurs_22(gr(>A,student(S,C,D))), который зависит от других переменных - это принципиально. Предикат show будет следующим:
show:-kurs_22(gr(X,student(Y,Z, K))),
Z="Программирование",!,
kurs_22(gr(A,student(B,C,D)),D=3,B=Z,
write(" Группа-", А, " Студент-", В," Оценка-",D),
nl,
fail.
После внутреннего запроса show на экран будет выведена информация в виде:
Группа-262 Студент-ЖИГАРЕВ С.И. Оценка-3
Отметим, что часть правила после отсечения ! осуществляет полный перебор всех фактов программы, начиная с первого, с помощью фильтра D=3, B=Z, а при его выполнении - с помощью fail.
Другими словами, отсечение ограничивает распространение аргументов для подбора новых значений возврата (бэктрекинга) из-за неудачи. Отсечение применяется также для ускорения вычислений путем отбрасывания избыточных ветвей вычислений.
Замечания:
316
Ранее было показано отличие выполнения внутреннего (описанного в разделе goal) и внешнего (вводимого через приглашение системы в диалоговом окне) запросов. Теперь мы можем сказать, что перебор всех альтернативных решений для внешнего запроса обеспечивается автоматическим присоединением к нему системой Турбо-Пролог стандартного предиката fail.
Наличие в программе раздела goal позволяет после компиляции логической программы получить загрузочный модуль программы (файл типа .ехе) и использовать его независимо от среды программирования Турбо- Пролог.
317
312 :: 313 :: 314 :: 315 :: 316 :: 317 :: Содержание
Для решения уравнений и систем уравнений применяется команда Solve в вариантах Exact, Numeric, Integer, Recursion, (соответственно "Точно", "В вещественных числах", "В целых числах", "Рекурсивно"). Каждое уравнение системы задается строкой вектора-столбца. При численном решении нелинейных систем в отдельных строках можно задать предполагаемые области нахождения корней. Для системы из двух уравнений:
х2-y2=5 |
x2-y2=1 |
x?(0,4) |
находим {y=-1.4142, x 1.7321}. Разумеется, - у также является решением этой системы.
Нахождение всех корней нелинейного уравнения или нелинейной системы в общем случае не гарантируется.
Системы линейных алгебраических уравнений можно записывать как в векторной форме:
3x1+x2=5 |
-2x1+x2+x3=15 |
2x1-x2+4x3=15 |
решение: x1=2, х2=3, х3=1, так и в векторно-матричной. Тогда решение будет представлено в виде столбца.
Ускорение доступа к данным на диске достигается путем дефрагментации (устранения фрагментации) файлов, а также размещения дескрипторов файлов таким образом, чтобы обеспечить более быстрый доступ к наиболее часто используемым файлам.
Фрагментация файлов означает размещение смежных кластеров файла на нескольких несмежных фрагментах - экстентах - дискового пространства. Причиной, вызывающей фрагментацию, является то обстоятельство, что память под файлы отводится по мере надобности. Поэтому при выделении дополнительных кластеров файлу они могут быть размещены на несмежном участке диска. Суть дефрагментации состоит в таком переразмещении файлов, чтобы они занимали непрерывные участки дисковой памяти. Полезным дополнительным эффектом проведения дефрагменгации является повышение безопасности хранения данных, поскольку нефрагментироваиные файлы легче восстанавливать.
Для ускорения доступа к некоторому файлу его следует переместить в начало папки. В этом случае операционной системе потребуется выполнить меньшее количество операций считывания и анализа дескрипторов. Отсюда следует, что файлы в папках желательно размещать в порядке убывания частот их использования.
Кроме того, для ускорения доступа к магнитным дискам часто используемые компоненты файловой системы размещают в начале, а редко используемые - ближе к концу дискового пространства. Это связано с применяемым направлением перемещения блока магнитных головок от внешних цилиндров к цилиндрам у оси вращения диска. К часто используемым компонентам файловой системы относятся прежде всего папки и затем часто используемые файлы.
Наибольший вклад в ускорение доступа к магнитным дискам из числа указанных способов вносит устранение фрагментации файлов. Для проведения дефрагментации дисков можно использовать утилиту Speed Disk из комплекта Norton Utilities. В составе Windows 95 имеется дефрагментатор Disk Defragmenter, включенный по соглашению с фирмой Semantec. Данная программа обеспечивает дефрагментацию диска и проверку наличия логических дефектов.
Условные предложения вычислимости задают условия применимости тех или иных отношений и имеют две формы записи. Первая форма имеет вид:
IF THEN БЕЗУСЛОВНОЕ ПРЕДЛОЖЕНИЕ>
Данное условное предложение определяет условия, когда связанное с ним отношение не будет использоваться в вычислениях, а именно: когда логическое выражение ложно. Если же логическое выражение истинно, безусловное предложение вычислимости может использоваться в вычислениях, но это не означает, что это случится обязательно, все зависит от того, понадобятся ли в вычислениях переменные, которые используются в нем.
Другая форма записи уловного предложения вычислимости:
IF THEN БЕЗУСЛОВНОЕ ПРЕДЛОЖЕНИЕ1>
ELSE
Данная форма определяет применение соответствующего безусловного предложения вычислимости как для истинного, так и для ложного значения логического выражения. Но, опять же, это необходимые условия применимости для того, чтобы в вычислениях было использовано первое либо второе предложение вычислимости нужно, чтобы они понадобились в вычислениях и эти вычисления были разрешимыми относительно неизвестных переменных.
Примеры условных предложений вычислимости:
IF x>=0 THEN y=sqrt(x) ELSE msg='sq_err
IFand(w>0,given('z)) THEN q=ln(w)*z
IF evltd('a) THEN b=a*c+d
Windows 98 более эффективно использует внешнюю намять, что позволило уменьшить размер файла подкачки и соответственно сократить временные затраты на свопинг. С помощью специальной утилиты ехе- и dll-файлы сдвигаются в пределах занимаемого ими пространства таким образом, чтобы обеспечить реальное соответствие страничной организации памяти, реализуемой современными микропроцессорами.
Доступ к системному реестру теперь осуществляется быстрее, а сам он занимает гораздо меньше памяти, чем в предыдущих версиях Windows.
Реализованный стандарт усовершенствованного управления питанием АРМ (Advanced Pover Management) позволяет отображать состояние двух аккумуляторных батарей мобильного компьютера и выводить его из состояния с малым энергопотреблением при поступлении вызова на встроенный в нем модем.
Поддерживается новый усовершенствованный интерфейс конфигурации и питания ACPI (Advanced Configuration and Pover Interface). Благодаря ему компьютер становится готовым к работе практически сразу после включения питания с восстановлением рабочей среды приложений, сформированной до его выключения. Это обеспечивается путем копирования образа физической памяти на жесткий диск при отключении питания и загрузки сохраненного образа в память после сто включения.
Возможно понижение скорости вращения жесткого диска и автоматическое отключение бездействующих модемов на PC Card.
Существенно доработана MS DOS и улучшена ее интеграция с высокоуровневыми средствами Windows 98. Реализована модель драйверов Win32 WDM (Win32 Driver Model), первоначально разработанная для Windows NT. Такая унификация позволяет теперь использовать одни и те же драйверы в различных операционных системах семейства Windows.
98
Контрольные вопросы и задания
Перечислите состав и назовите фунцип компонентов MS DOS.
Каковы функции командного процессора?
Назовите и охарактеризуйте типы команд MS DOS.
Опишите схему взаимодействия прикладных программ с аппаратно-программным обеспечением компьютера.
Дайте определение файла, назовите требования к именам файлов в MS DOS.
Имеющие место на магнитных дисках дефекты разделяют на логические и физические.
Логические дефекты заключаются в нарушении файловой структуры диска или содержимого системной области диска - загрузочной записи и таблицы размещения файлов. Причинами появления логических дефектов могут быть сбои в работе компьютера, неправильные действия пользователя или деструктивные действия компьютерных вирусов. При этом возможно появление так называемых потерянных кластеров (недоступных ни из одной папки) или совмещенных файлов (имеющих общие кластеры). В результате логических дефектов может возникать замусоривание дискового пространства, иметь место невозможность доступа к элементам файловой структуры диска, неправильная обработка информации из-за взаимовлияния файлов.
Физические дефекты проявляются в невозможности правильного чтения и/или записи данных на отдельных участках магнитного диска из-за механических повреждений, неудовлетворительного качества или старения магнитного покрытия диска. Вовремя обнаруженные физические дефекты опасности не представляют, поскольку кластеры с дефектными секторами помечаются как дефектные и в дальнейшем не используются. Новые, но не обнаруженные физические дефекты могут привести к потере определенной части данных. Особенно опасны физические дефекты в системной части диска, так как при этом могут оказаться недоступными целые фрагменты файловой структуры.
Рис. 6.4. Стартовое диалоговое окно сканер-корректора
91
Для поиска и устранения дефектов на магнитных дисках применяются специальные утилиты, получившие название дисковых сканер-корректоров. Среди таких утилит широкое распространение получили Microsoft ScanDisk, входящая в состав Windows 95, и Norton Disk Doctor из комплекта Norton Utilities. Утилиты имеют одинаковую схему работы: сначала выполняется проверка файловой структуры диска для поиска и устранения логических дефектов, затем проводится проверка поверхности диска для поиска и устранения физических дефектов.
Найденные цепочки свободных кластеров в соответствии с реакцией пользователя преобразуются в файлы или объявляются свободными.
Совмещенные файлы могут быть переразмещены для разделения. При обнаружении физического дефекта расположенные на дефектном участке данные по возможности перемещаются в другое место. Естественно, при этом часть данных может оказаться утраченной.
В среде Windows 95 сканер-корректор Microsoft ScanDisk содержится в файле scandskw.exe, который размещается в основной папке операционной системы. В состав Windows 95 входит также DOS-вариант сканер-корректора Microsoft ScanDisk. Он находится в файле scandisk.exe, который размещается в папке COMMAND, вложенной в основную папку Windows 95.
Для запуска сканер-корректора Microsoft ScanDisk достаточно из главного меню Windows 95 выполнить команду Программы | Стандартные \ Служебные программы \ Проверка диска (ScanDisk) (Programs \ Accessories \ SYStem Tools \ ScanDisk). В результате открывается стартовое окно сканер-корректора Microsoft ScanDisk (рис. 6.4).
Дальнейший порядок работы со сканер-корректором Microsoft ScanDisk следующий:
Рис. 6.5. Диалоговое окно Дополнительные параметры ScanDisk
92
в списке диалогового окна сканер-корректора выделяются диски, подлежащие проверке;
выбирается вариант проверки - Стандартная (Standard) или Полная (Thorough);
при выборе варианта полной проверки после нажатия кнопки Параметры (Options) уточняются параметры полной проверки (нужно ли проверять системную область и/или область данных);
нажатием кнопки Дополнительно (Advanced) открывается диалоговое окно Дололнительные параметры ScanDisk (ScanDisk Advanced Options) (рис. 6.5) и выполняется настройка параметров;
нажатием кнопки Запуск (Start) инициируется начало проверки.
Установка флажка Исправлять ошибки автоматически (Automatically fix errors) означает автоматическое исправление обнаруженных ошибок сканер-корректором без выдачи запросов пользователю.
После окончания работы сканер-корректора появляется панель, отображающая отчет о результатах.
Векторное представление, в отличие от растровой графики, определяет описание изображения в виде линий и фигур, возможно, с закрашенными областями, заполняемыми сплошным или градиентным цветом. Хотя это может показаться более сложным, чем использование растровых массивов, но для многих видов изображений использование математических описаний является более простым способом.
В векторной графике для описания объектов используются комбинации компьютерных команд и математических формул для описания объектов. Это позволяет различным устройствам компьютера, таким как монитор и принтер, при рисовании этих объектов вычислять, где необходимо помещать реальные точки.
Векторную графику часто называют объектно-ориентированной или чертежной графикой. Имеется ряд простейших объектов, или примитивов, например: эллипс, прямоугольник, линия. Эти примитивы и их комбинации используются для создания более сложных изображений. Если посмотреть содержание файла векторной графики, обнаруживается сходство с программой. Он может содержать команды, похожие на слова, и данные в коде ASCII, поэтому векторный файл можно отредактировать с помощью текстового редактора. Приведем в условном упрощенном виде команды, описывающие окружность:
объект - окружность;
центр - 50, 70; радиус - 40;
линия: цвет - черный, толщина - 0.50;
заливка - нет.
Данный пример показывает основное достоинство векторной графики - описание объекта является простым и занимает мало памяти. Для описания этой же окружности средствами растровой графики потребовалось бы запомнить каждую отдельную точку изображения, что заняло бы гораздо больше памяти.
Кроме того, векторная графика в сравнении с растровой имеет следующие преимущества:
простота масштабирования изображения без ухудшения его качества;
независимость объема памяти, требуемой для хранения изображения, от выбранной цветовой модели.
Недостатком векторных изображений является их некоторая искусственность, заключающаяся в том, что любое изображение необходимо разбить на конечное множество составляющих его примитивов.
Растровая и векторная графика существуют не обособлено друг от друга. Так, векторные рисунки могут включать в себя и растровые изображения. Кроме того, векторные и растровые изображения могут быть преобразованы друг в друга - в этом случае говорят о конвертации графических файлов в другие форматы. Достаточно просто выполняется
359
преобразование векторных изображений в растровые. Не всегда осуществимо преобразование растровой графики в векторную, так как для этого растровая картинка должна содержать линии, которые могут быть идентифицированы программой конвертации (типа CorelTrace в составе пакета CorelDraw) как векторные примитивы. Это касается, например, высококачественных фотографий, когда каждый пиксел отличается от соседних.
Каждая ВМ-функция - функция, содержащая описание ВМ (тип функции Rule), должна быть объявлена на панели Function Sheet и описана на панели Rule Function Subsheet.
Описание В М-функции включает в себя множество правил (условных и безусловных предложений вычислимости) и объявление ее входных переменных:
переменных-параметров В М-функции в поле Parameter Variables (значения переменным этого поля присваиваются непосредственно из панели Variables Sheet);
переменных-аргументов в поле Argument Variables (значения переменных передаются через список вызова В М-функции);
и выходных переменных - результатов функции в поле Result Variables (значения возвращаются через список вызова ).
В общем случае для В М-функций можно отойти от жесткого разделения на только входные или только выходные переменные: входными считаются переменные, значения которых известны до обращения к функции, а выходными - переменные, значения которых могут быть вычислены для заданного множества входных переменных. Поэтому входными могут быть переменные, описанные и как аргументы, и как результаты; аналогично и выходными. Однако в вызове ВМ-функции должен быть специфицирован полностью весь список аргументов и результатов ВМ-функции, даже если заведомо известно, что не все исходные данные означены и соответственно будут получены не все результаты.
В ВМ-функциях попытка означить переменную-параметр значением, отличным от того, что задано на панели Variables Sheet, приводит к ошибке, фиксируются ошибки также, если значение какой-либо переменной вычисленное с помощью одного соотношения, не согласуется со значением этой или другой переменной, вычисленной с помощью другого соотношения.
В теле ВМ-функции могут быть ссылки или обращения к другим В М-функциям или процедурам (рекурсивные ссылки и вызовы не допускаются, т.е. нельзя обращаться к самой себе).
Решатель задач осуществляет обработку переменных и правил ВМ-функции аналогично тому, как это делается для переменных и правил из панели описания вычислительной задачи Rule Sheet. Неизвестные переменные могут содержаться как в левых, так и в правых частях правил и вычисляются с использованием тех правил, в которых они представлены.
Word позволяет выполнять удобную вставку названий для различного рода объектов (рисунков, таблиц, формул и др.), а также автоматическую вставку названий для объектов, создаваемых с помощью команды Объект... (Object...) меню Вставка (Insert). Важно, что при этом обеспечивается автоматическая нумерация названий определенного типа и возможность задания на них перекрестных ссылок
Под перекрестными ссылками понимаются ссылки на заголовки, метки названий и ряд других элементов документа. Ссылки вставляются в виде кодов полей, это обеспечивает простоту обновления перекрестных ссылок в случае изменения номеров названий, номеров заголовков и т.п.
Название включает постоянную часть (метку), номер и необязательный текст. Работа с названиями выполняется с помощью диалогового окна Название (Caption)(pnc. 10.9), вызываемого одноименной командой меню Вставка (Insert).
Рис. 10.9. Диалоговое окно Название
Пример 1. Вставка названия рисунка.
Поместим курсор в строку под рисунком, для которого требуется вставить название.
Зададим команду Название... (Caption...) меню Вставка (Insert).
В появившемся диалоговом окне (рис. 10 9) в списке Постоянная часть: (Label:) выберем значение "рис".
Для уточнения параметров нумерации названий с помощью кнопки Нумерация... (Numbering...) откроем диалоговое окно Нумерация названий (Caption Numbering).
В списке Формат (Format) выберем подходящий вариант нумерации (арабскими или римскими цифрами, прописными или строчными латинскими буквами).
Для включения в состав нумерации названия номера заголовков (при их наличии) установим флажок Включить номер главы (Include Chapter Number) и в спискеНачинается со стиля (Chapter Start with Style) выберем стиль заголовка, который будет учитываться последним при определении номера названия рисунка.
В списке Разделитель: (Use Separator:) выберем символ для отделения номера заголовка от номера рисунка внутри фрагмента документа (с данным номером заголовка).
136
Замечание.
Если нумерация заголовков в документе отсутствует, то будет выдано предупреждающее сообщение и в качестве номера заголовка в составе номера названия будет вставлена цифра 0.
Логика занимается изучением законов мышления, одной из главных ее задач является моделирование правильных человеческих рассуждений. Особый интерес к логике возник с появлением ЭВМ, с попытками научить машину рассуждать, т.е. делать логические заключения. Рассмотрим основные идеи, лежащие в основе логических рассуждений.
В логике выделяют следующие формы мышления: понятия, высказывания и рассуждения.
Понятие о предмете составляет совокупность мыслимых признаков предмета. Понятие выражается словом. Основными способами образования понятий являются:
сравнение - установление сходства или различия в понятиях;
анализ - мысленное расчленение целого на составные части:
синтез - мысленное создание целого из некоторого числа составных частей (признаков, свойств, отношений);
абстрагирование - мысленное выделение в понятии определенных признаков и отвлечение от других;
обобщение - объединение различных объектов в однородные группы на основании присущих им общих признаков.
Всякое понятие обладает содержанием - совокупностью признаков предмета в данном понятии и объёмом - совокупностью объектов, входящих в данное понятие.
По содержанию понятия делятся на положительные и отрицательные (присутствуют или нет определенные признаки в понятии), безотносительные и относительные, сравнимые и несравнимые.
В логическом отношении друг с другом находятся только сравнимые понятия. Сравнимые понятия (имеющие общие признаки в содержании) бывают совместимыми (с совпадающим объемом понятий) и несовместимыми. Выделяют три вида отношений совместимости: равнозначность, пересечение, подчинение объемов. Существуют и три вида отношений несовместимости: соподчинение, противоположность, противоречие.
Связь между объемом и содержанием понятий выражается в законе обратного отношения: если два понятия сравнимы в логическом смысле, и содержание первого из них больше, чем второго, тогда объем второго понятия больше объема первого. С этим законом связаны способы обобщения (переход от понятия с большим объемом и меньшим содержанием к понятию с меньшим объемом и большим содержанием) и ограничения
A1,A2...An |
В |
Если при вводе данных в ячейки не был задан определенный числовой формат, то по умолчанию применяется формат Общий (General).
Ввод отрицательного числа начинается со знака минус. Введенный перед числом плюс игнорируется. Если число должно быть показано в экспоненциальной форме, то необходимо указать в выражении букву Е (прописную или строчную). Для ввода числового значения в дробном формате необходимо обязательно указывать целую и дробную часть числа, отделенные друг от друга пробелом, например, 1 1/2 или 0 5/6. Указав при вводе символ валюты, можно тем самым выбрать денежный (финансовый) формат, например, 5,00 р. В формате Общий (General) максимальное количество отображаемых в ячейке десятичных цифр равно 10. Если ширина ячейки недостаточна для отображения введенного числового значения, то Excel автоматически представляет его в экспоненциальной форме. При недостаточной ширине ячейки для вводимого
153
числа, но с использованием числового формата, отличного от формата Общий (General), Excel представит вместо числа несколько символов номера, например: #####. В этом случае чтобы отобразить содержимое ячейки, необходимо увеличить ширину столбца.
При вводе в ячейку значения даты для разделения ее частей используется наклонная черта (/), точка или дефис (-), например, 1.02.1998 или 1/02/98.
Значения времени также можно ввести непосредственно с клавиатуры, отделяя друг от друга часы, минуты и секунды двоеточием.
Если в ячейке одновременно должны быть указаны значения даты и времени, то при вводе их необходимо разделить пробелом, например:
1-ФЕВ-98 17:09
Excel представляет и обрабатывает значения даты и времени как десятичные числа. Каждой дате из диапазона 01.01.1900 по 31.12.2078 ставится в соответствие десятичное число от 1 до 65380. Поэтому дате 01.02.1900 в формате Числовой (Number) соответствует целое число 32. Аналогично любому значению времени суток ставится в соответствии десятичная дробь из интервала от 0 до 1. Например, значение времени суток 23:45:36, представленное в числовом формате, есть десятичная дробь 0.99.
Все данные, которые обрабатывает Excel, делятся на следующие три типа: числа, формулы и текст. К числовому типу данных относятся:
константа, например: 125; 125.5; 3.46Е+03;
дата, например: 32.12.97; 6 апр 97; дек 97;
время, например: 14:30; 14:30:59; 1:30:55 РМ.
дата и время, например: 28 октябрь, 1995 23:45:36
Все числовые данные после ввода в ячейку по умолчанию выравниваются по правому краю.
Формула всегда начинается с символа "=", например: = А1 +$ВЗ. После ввода в ячейку формулы производятся вычисления, результат которых отображается в ячейке. При этом в строке формул будет представлена введенная формула.
Любые данные, которые программой не распознаются в качестве числовых (константа, дата, время), интерпретируется как текстовые. Длина текста, помещенного в ячейку, не может превышать 255 символов. Признаком вводимой в ячейку текстовой информации является знак апострофа, который следует первым, например, '3.06.53 - это текстовый, а не числовой тип данных. Текстовые данные по умолчанию выравниваются по левому краю ячейки.
Для ввода данных в ячейку необходимо выполнить следующие действия:
поместить указатель мыши на нужную ячейку;
ввести данные (Excel автоматически распознает тип вводимых данных и представляет содержимое ячейки в соответствующем формате по умолчанию);
завершить ввод данных нажатием клавиши , любой клавиши управления курсором, либо выполнив щелчок мышью на другой ячейке рабочего листа.
152
Данные любого типа, введенные в ячейку, могут быть представлены в определенном формате. Для этого используется команда Ячейки... (Cells...) меню Формат (Format). Форматирование содержимого ячейки не приводит к изменению самого содержимого, а определяет внешнее представление введенного значения.
В табл. 12.1 показано внешнее представление единицы в различных форматах.
Таблица 12.1
Представление "1" в различных форматах
Представление | Формат |
1 | Общий |
1,00 | Числовой |
1,00р. | Денежный |
1,0р. | Финансовый |
1 Январь, 1980 | Дата |
0:00:00 | Время |
100,0% | Процент |
1 | Дробный |
1 .ООЕ+00 | Экспоненциальный |
1 | Текстовый |
0001 | Дополнительный |
Вначале число "1" введено в ячейки в формате по умолчанию Общий (General), a затем каждая ячейка подвергалась форматированию 1ю команде Ячейки... (Cells...) меню Формат (Format). Ячейки можно форматировать до и после ввода в них значений.
Формула представляет собой сочетание констант, операторов, ссылок, функций, имен диапазонов и круглых скобок, используемых для изменения последовательности вычислений. Пример записи формулы:
= СУММ(А1 :А15)/$С$3 + ЦЕНА*(150 + КОЛИЧ)
В этом примере СУММ - имя функции; А1, А15, $С$3 - ссылки; А1 : А15 - диапазон (массив) ячеек; ЦЕНА, КОЛИЧ - имена диапазонов ячеек; 150 - константа.
В формулах могут использоваться арифметические операторы +; -; *; /; % (определение значения процента); А (возведение в степень); операторы сравнения =; ;
154
>=; о (не равно) и оператор объединения текстовых данных &. Кроме того, Excel распознает три адресных оператора для указания диапазонов ячеек:
Оператор диапазона (двоеточие). Например, по формуле =СУММ(В1:01) вычисляется сумма содержимого ячеек В1, С1 и D1, входящих в состав диапазона В1 :D1. Оператор диапазона можно использовать для указания ссылок на ячейки всего столбца (например, А:А), на ячейки всей строки (например, 1:1), на ячейки всего рабочего листа (A:IV или 1:16384).
Оператор объединения диапазонов (точка с запятой). Например, по формуле =СУМ М(С5: С7; A3:СЗ) вычисляется сумма двух несмежных диапазонов С5: С7 и A3:СЗ.
Оператор пересечения диапазонов (пробел). Например, по формуле =СУММ(А5:В11 В8:С10) вычисляется сумма содержимого ячеек диапозонаВб:В10.
Используемые в формулах ссылки на ячейки могут быть трех типов: абсолютные, относительные и смешанные.
Абсолютная ссылка задает абсолютные координаты ячейки в рабочем листе. При перемещении или копировании формулы из одной ячейки в другие такая ссылка в формуле не изменяется и всегда указывает на одну и ту же ячейку таблицы. Для записи абсолютной ссылки в стиле "А1" (см. параграф 8.1) используется знак $, например, $В$5, $С$4 и т.д. Ссылка, записанная в стиле "R1C1" без квадратных скобок, является абсолютной, например, R5C2, R4C3.
Относительная ссылка в стило "А1" записывается без знака $, например: А1, В5, J3 и т.д.
При вычислении формулы такие ссылки, так же как и абсолютные, указывают на координаты ячеек таблицы, участвующих в операции. Например, по формуле =А2+В2+С2, так же как и по формуле =$А$2+$В$2+$С$2, осуществляется суммирование содержимого первых трех ячеек второй строки рабочего листа. Отличие заключается в том, что при копировании формулы с относительными ссылками в другое место последние изменяются. Изменения определяются новым положением формулы в таблице. При этом действует следующее правило: относительная ссылка изменяется таким образом, что маршрут (направление движения и расстояние) к адресуемой ячейке относительного нового положения формулы сохраняется. Чтобы задать относительную ссылку в стиле "R1C1", используются квадратные скобки. В скобках указывается нужное количество строк и столбцов относительно ячейки, содержащей формулу с такой ссылкой. Например, R[2]C[5] - ссылка на ячейку, расположенную на две строки ниже и на пять столбцов правее ячейки, в которой записана такая ссылка, R[-2]C[-1] - ссылка на ячейку, которая находится на две строки выше и на один столбец левее ячейки, содержащей ссылку.
Смешанная ссылка - это ссылка, в которой адресация строки отличается от адресации столбца. Например, А$3 - смешанная ссылка с указанием относительной адресации столбца и абсолютной адресации строки. Другие примеры смешанных ссылок: $В5, R3C[-2], R4C[-2].
Замечания.
Для выбора стиля представления ссылок необходимо в диалоговом окне Параметры (Options) на вкладке Вид (View) установить переключатель "А1" или "R1С1".
При записи относительных ссылок в стиле "R1C1" нулевое количество строк и столбцов в квадратных скобках допускается не указывать. Например, ссылка RC1 равнозначна ссылке R[0]C1.
В таблице невозможно использование двух стилей записи адресов одновременно.
155
Для пояснения смысла указанных типов ссылок рассмотрим фрагмент таблицы на рис.12.3.
А | В | С | D | |
1 | 34 | 12 | 10 | =А1+В1+С1 |
2 | 45 | 23 | ||
3 | =А1+А2 | |||
4 |
Текст сообщения | Возможная причина | Способ устранения |
# ДЕЛ/0! | Деление на ноль | Проверить содержимое влияющей ячейки |
# ССЫЛКА! | Указана некорректная ссылка | Проверить ссылки, особенно внешние: правильно ли указан путь, не был ли переименован файл, лист и т.д. |
# ЧИСЛО! | Невозможность вычисления значений (например, извлечение квадратного корня из отрицательного числа) | Проверить правильность задания аргументов функций |
# ПУСТО! | Неверно указано пересечение диапазонов ячеек (нет общих ячеек) | Задать правильно диапазон ячеек |
# ЗНАЧ! | Задан аргумент недопустимого типа | Уточнить типы аргументов для применяемой функции |
#ИМЯ! | Указано недопустимое имя операнда (например, функции или диапазона) | Проверить правильность написания имен |
# Н/Д1 | Нет данных в ячейке, на которую сделана ссылка | Проверить содержимое влияющей ячейки |
Для ввода вектора используется команда Author\ Vector (Автор | Вектор) или соответствующая кнопка панели инструментов. После ответа на запрос о числе элементов можно вводить сами элементы. Вектор можно задать и списком элементов, заключенным в квадратные скобки. Матрица вводится как список списков (но строкам).
Вектор можно сформировать расчетным путем. Например, матрица Гильберта 3x3 задается командой
VECTOR(VECTOR(1/(I+J-1),J,1,3), I,1,3).
208
Для удобства ссылок на матрично-векторные объекты нужно объявить их имена с атрибутом Nonscalar и присвоить им ранее введенные значения посредством ссылок на номера записей.
Индексы в авторской строке набираются после выбора из панели символа [v] (каждый), а в выходном документе представляются обычным образом. Например, для задания b := b 2.1, в окне Autohor\Expression (Автор\Выражение) нужно набрать b := a\ v 2\ v I. Операция Simplify (Упростить) приводит к выводу значения указанного элемента.
Ввод текста выполняется в режиме вставки или замещения. В режиме вставки вводимые по месту расположения курсора символы автоматически сдвигают находящийся справа текст. В режиме замещения вводимый по месту расположения курсора текст замещает находящиеся справа от курсора символы. Переключение между режимами вставки и замещения выполняется с помощью клавиши . При первоначальном вводе текста в конец документа режимы вставки и замены равносильны друг другу.
Переключение раскладки клавиатуры между русским и английским алфавитом выполняется с помощью комбинации клавиш левый + или +, устанавливаемой в среде Windows 95.
Ввод текста обычно выполняется с помощью клавиатуры, используемый при этом шрифт обычно задается вручную - с помощью панели инструментов Форматирование (Formatting) или автоматически в соответствии со стилем абзаца.
В ряде случаев в документ приходится вставлять отличные от алфавитно-цифровых символы, изображений которых нет на клавиатуре. При этом (для получения наглядного представления о выбранном наборе символов) обычно используют команду Символ. .. (Symbol...) меню Вставка (Insert).
Редактирование текста документа в основном связано с выполнением операций копирования, удаления и перемещения фрагментов текста. Указанные операции требуют предвари тельного выделения обрабатываемого фрагмента. Далее можно воспользоваться буфером обмена или обойтись без него.
Пример 1. Вставка в документ символа М (с изображением телефона), входящего в состав шрифта Wingdings.
Зададим команду Символ... (Symbol...) меню Вставка (Insert).
В открывшемся диалоговом окне Символ (Symbol) выберем вкладку Символы (Symbols), рис. 9.4.
в списке Шрифт: (Font:) выберем шрифт Wingdings, затем с помощью мыши выберем нужный символ.4 Нажмем кнопку Вставить (Insert).
Замечание.
Диалоговое окно Символ (Symbol) отображается в окне Word и может использоваться для вставки символов при редактировании документа до тех пор, пока не будет нажата кнопка Закрыть (Close).
Пример 2.
Выделение фрагмента документа в обычном режиме. 1. Поместим указатель в начало или конец выделяемого фрагмента. Далее выполним одно из следующих действий.
Нажмем левую кнопку мыши и выделим фрагмент протаскиванием указателя в нужном направлении.
Нажмем клавишу и с помощью клавиш управления курсором расширим выделение фрагмента в нужном направлении.
122
Рис. 9.4. Вид диалога вставки символа
Замечания.
При использовании клавиш управления курсором (со стрелками вправо и влево) происходит посимвольное расширение выделения.
При дополнительном нажатии и удерживании клавиши расширение выделения выполняется пословно.
Отмена выделения выполняется щелчком или нажатием любой из клавиш управления курсором после отпускания клавиши .
Выделение фрагмента документа можно выполнять в режиме пошагового расширения выделения. Для этого помещают указатель в начало или конец выделяемого фрагмента и включают режим пошагового расширения выделения нажатием клавиши или двойным щелчком мышью в поле ВДЛ строки состояния. Теперь при последовательных нажатиях клавиши происходит выделение слова, предложения, абзаца и документа в целом. Отмена выделения в обратном порядке выполняется нажатием комбинации клавиш +.
Пример 3. Перемещение и копирование выделенного фрагмента с помощью мыши
методом drag-and-drop (перенести и оставить).
Предварительно зададим команду Параметры... (Options...) меню Сервис (Tools) и на вкладке Правка (Edit) диалогового окна Параметры (Options), установим флажок Использовать перетаскивание текста при правке (Drag-and-Drop Text Editing).
Поместим указатель в область выделенного фрагмента и после принятия им формы наклоненной влево стрелки нажмем левую кнопку мыши - внизу указателя появится прямоугольник, а текстовый курсор примет форму вертикальной штриховой линии.
123
Протащим указатель так, чтобы текстовый курсор оказался в месте предполагаемой вставки выделенного фрагмента, и отпустим кнопку мыши.
Если предполагаемое место вставки не отображается на экране, протащим указатель к верхней или нижней границе окна документа.Прокрутим таким образом текст в окне в нужном направлении (вверх пли вниз).
Копирование выделенного фрагмента выполним аналогично с той разницей, что вместе с нажатием и отпусканием левой кнопки мыши будем нажимать и отпускать клавишу .
124
122 :: 123 :: 124 :: Содержание
Выбор полей результирующей таблицы выполняется с помощью вкладки Fields (поля) диалогового окна Конструктора запросов. Рассмотрим эту процедуру на примере организации запроса 1.
Запрос 1. Составить список всех преподавателей, сведения о которых содержатся в таблице T_prep.dbf, с указанием их стажа и должности.
Вся необходимая информация содержится в одной таблице. Выводимые записи должны быть упорядочены по полю Fio.
Поля результирующей таблицы формируются из полей исходной таблицы и вычисляемых полей. Для выбора полей исходной таблицы необходимо отобразить их в списке Selected Output (выбранные поля) вкладки выбора полей Fields (поля) (рис. 22.1). Один из способов формирования полей в результирующей таблице состоит в следующем. В окне Конструктора запросов выберем вкладку Fields (поля) и откроем при этом два списка: Available Fields (доступные поля) и Selected Output (выбранные поля). Наша задача перенести в список Selected Output (выбранные поля) поля, используемые в sanpoqe. При выделении в списке Available Fields (доступные поля) с помощью мыши нужного поля активизируется кнопка Add (добавить), при нажатии которой и осуществляется перенос этого поля. Для переноса всех полей в список выбранных достаточно нажать кнопку Add All (добавить все). Если часть полей оказалась лишней, их можно удалить из списка Selected Output (выбранные поля) с помощью кнопки Remove (удалить).
Место, которое поле занимает в списке Selected Output (выбранные поля), соответствует и его месту в результирующей таблице. Для изменения расположения некоторого поля достаточно выбрать мышью маркер перемещения (слева от поля) и переместить его в нужное место.
Результаты выполнения запроса представлены на рис. 22.2.
Рис. 22.2. Результат выборки полей таблицы Т_ргер
271
271 :: Содержание
Промежуточными итогами называют результаты вычисления по определенной функции изменяющихся значений одного или нескольких столбцов записей, предварительно разбитых на несколько групп. Общий итог вычисляется с применением функций, заданных для вычисления промежуточных итогов. Он располагается в виде отдельной строки в конце списка. Необходимость в выполнении таких операций возникает довольно часто, поскольку они позволяют свести воедино и проанализировать однородные и неоднородные данные списка.
172
Прежде чем задать вычисление промежуточных итогов, все записи списка необходимо разбить на несколько групп. С этой целью используется сортировка. Ее производят по полю, при изменении значений которого предполагается вычисление промежуточных и общих итогов. Например, отсортировав в алфавитном порядке список на рис. 13.1 по полю "Занимаемая должность", все записи списка тем самым разбиваем па несколько групп по категориям должностей. Теперь для любого столбца группы записей можно задать автоматическое вычисление промежуточных итогов с указанием определенного типа функции.
Например, задать функцию СРЗНАЧ для столбцов "Оклад" и "Премия" рассматриваемого списка. В этом случае для каждой группы записей списка применительно к указанным столбцам будут автоматически вычислены промежуточные итоги, а в конце появится строка с общими итогами для всего списка.
Чтобы задать операцию вычисления промежуточных итогов для отсортированного по определенному полю списка, необходимо выполнить следующие действия:
Выполнить команду Итоги (Subtotals) меню Данные (Data).
В поле При каждом изменении в (At Each Change in) появившегося диалогового окна выбрать имя столбца, содержащего группы записей (т.е. имя столбца, по которому произведена сортировка).
В раскрывающемся списке Операция (Use Functions) выбрать функцию для вычисления промежуточных итогов.
В поле Добавить итоги по (Add Subtotals to) выбрать столбцы, значения которых будут обрабатываться с применением указанной функции.
В общем случае ИППП включает в свой состав следующие компоненты: подсистему общения пользователя с пакетом, подсистему планирования решений задач (планировщик) и базу знаний о программных модулях, составляющих функциональное наполнение пакета.
Планировщик является ядром ИППП, основная цель его - получение плана решения задачи пользователя, формулировка которой поступает на вход подсистемы планирования. План решения задачи в ИППП трактуется как поиск программы, решающей эту задачу. При этом программа решения задачи может конструироваться либо явно на каком-либо из алгоритмических языков программирования, либо существует в виде шагов работы планировщика. В первом случае ИППП является транслятором с декларативного языка описания задач на алгоритмический язык программирования. Во втором варианте, когда программа решения задачи не конструируется явно, а существует в виде шагов работы планировщика, планировщик работает в режиме интерпретации и является по сути интерпретатором с языка описания задач.
Как в первом, так и во втором вариантах работа планировщика отличается от функционирования обычного транслятора с алгоритмического языка программирования. Если функцией обычного транслятора является преобразование входной программы с входного алгоритмического языка программирования в язык машинных команд ЭВМ, то основная задача планировщика - синтез алгоритма программы решения задачи по декларативному описанию формулировки задачи. Синтез осуществляется с использованием базы знаний (БЗ). Типовая структура системы синтеза программ на основе представления знаний приведена на рис. 25.1.
База знаний в ИППП описывается на языке спецификаций, задачи формулируются на языке формулировок задач. В общем случае это может быть один и тот же язык. Пользователь, применяющий ИППП для решения прикладных задач, выступает обычно в двух ролях:
как инженер по знаниям, т.е. специалист в предметной области, - когда описывает содержимое базы знаний;
как кодировщик задач, - когда формулирует задачи с использованием накопленных в ИППП знаний.
Действие многих команд относится не к одному выделенному элементу (ячейке, строке, столбцу или листу рабочей книги), а к их совокупности. Такие совокупности однотипных элементов называются диапазонами. В пределах документа можно предварительно выделить один или несколько несмежных диапазонов. Все элементы таких диапазонов обрабатываются в рамках одной операции (например, форматируются, очищаются, перемещаются и т.д.).
Замечание.
Некоторые операции не могут выполняться для несмежных диапазонов ячеек. В этом случае выдается сообщение: "Данная команда неприменима для несвязных диапазонов" (Can not that command on nonadjacent selections).
Рассмотрим основные способы выделения диапазонов однотипных элементов с помощью мыши.
Прямоугольный диапазон ячеек можно выделить одним из следующих способов:
1. Щелчком мыши выделить первую входящую в диапазон ячейку. Эта ячейка станет активной. При нажатой левой кнопке мыши протащить указатель по диагонали выделяемого прямоугольного диапазона ячеек.
2. Выделить ячейку, стоящую в любом из углов предполагаемого прямоугольного диапазона ячеек. Нажать клавишу и щелкнуть на ячейке в противоположном углу диапазона. Такой способ рекомендуется для выделения диапазона ячеек, не умещающегося в пределах окна и требующего использования полос прокрутки.
Для выделения всех ячеек таблицы достаточно нажать кнопку в левом верхнем углу листа (на пересечении заголовков строк и столбцов).
Чтобы выделить все ячейки столбца (строки) достаточно щелкнуть мышью на заголовке этого столбца (строки). Для выделения нескольких смежных столбцов (строк) необходимо либо протащить указатель мыши при нажатой левой кнопке через заголовки соответствующих столбцов (строк), либо нажать клавишу и щелкнуть на заголовке последнего столбца (строки) диапазона смежных столбцов (строк).
Выбор листа в книге осуществляется щелчком мыши на ярлычке с его именем. Нужный лист можно выбрать также с помощью контекстного меню: щелчком правой кнопки мыши по одной из кнопок прокрутки ярлычков листов книги.
Выявление зависимостей между атрибутами необходимо для выполнения проектирования БД методом нормальных форм, рассматриваемым далее.
Выявим зависимости между атрибутами отношения ПРЕПОДАВАТЕЛЬ, приведенного на рис. 19.7. При этом учтем следующее условие, которое выполняется в данном отношении.
Условие. Один преподаватель в одной группе может проводить только один вид занятий (лекции или практические занятия).
В результате анализа отношения получаем зависимости между атрибутами, показанные на рис. 19.8.
Рис. 19.8. Зависимость между атрибутами
К выделению этих функциональных зависимостей ФЗ для рассматриваемого примера приводят следующие соображения.
Фамилия, имя и отчество у преподавателей факультета уникальны. Каждому преподавателю однозначно соответствует его стаж, т.е. имеет место функциональная зависимость ФИО->Стаж. Обратное утверждение неверно, так как одинаковый стаж может быть у разных преподавателей.
239
Каждый преподаватель имеет определенную добавку за стаж, т.е. имеет место функциональная зависимость ФИО->Д_Стаж, но обратная функциональная зависимость отсутствует, так как одну и ту же надбавку могут иметь несколько преподавателей.
Каждый преподаватель имеет определенную должность (преп., ст. преп., доцент, профессор), но одну и ту же должность могут иметь несколько преподавателей, т.е. имеет место функциональная зависимость ФИО->Должн, а обратная функциональная зависимость отсутствует.
Каждый преподаватель является сотрудником одной и только одной кафедры. Поэтому функциональная зависимость ФИО-Жаф имеет место. С другой стороны, на каждой кафедре много преподавателей, поэтому обратной функциональной зависимости нет.
Каждому преподавателю соответствует конкретный оклад, который одинаков для всех педагогов с одинаковыми должностями, что учитывается зависимостями ФИО->Оклад и Должн->Оклад. Нет одинаковых окладов для разных должностей, поэтому имеет место функциональная зависимость Оклад->Должн.
Один и тот же преподаватель в одной группе по разным предметам может проводить разные виды занятий. Определение вида занятий, которые проводит преподаватель, невозможно без указания предмета и группы, поэтому имеет место функциональная зависимость ФИО, Предм, Группа->ВидЗан. Действительно, Петров М.И. в 256 группе читает лекции и проводит пратические занятия. Но лекции он читает по СУБД, а практику проводит по Паскалю.
Нами не были выделены зависимости между атрибутами ФИО, Предм и Группа, поскольку они образуют составной ключ и не учитываются в процессе нормализации исходного отношения.
После того, как выделены все функциональные зависимости, следует проверить их согласованность с данными исходного отношения ПРЕПОДАВАТЕЛЬ (рис. 19.7).
Например, Должн.=преп и Оклад=500 всегда соответствуют друг другу во всех кортежах, т. с. подтверждается функциональная зависимость Должн. Оклад. Так же следует верифицировать и остальные функциональные зависимости, не забывая об ограниченности имеющихся в отношении данных.
Исследованием операций (ИО) называется применение математических методов к анализу целенаправленной человеческой деятельности. В него интегрировались многие самостоятельно развивавшиеся разделы прикладной математики. Методы ИО являются важнейшим элементом профессиональной деятельности инженера, который является организатором ее эффективного использования в сложных человеко-машинных системах. Перечислим основные методы исследования операций.
Линейное программирование. Здесь решаются задачи с линейной целевой функцией при линейных ограничениях на переменные и (обычно) требовании их неотрицательности. Оптимум, если он существует, всегда достигается в процессе направленного перебора и лежит на границе допустимой области. Примерами задач линейного программирования являются задачи на составление оптимальных смесей (рецептур, диет), раскроя материалов, транспортные проблемы и т.п.
Нелинейное программирование применяется при нелинейных целевых функциях и/ или ограничениях. Ограничения обычно имеют вид неравенств, что исключает решение методом неопределенных множителей Лагранжа. Эти задачи также решаются направленным поиском (обычно на основе градиента целевой функции), который приводит к локальному экстремуму.
Динамическое программирование служит для выработки многоэтапных решений (развития производственной или иной системы, долгосрочной замены оборудования, многозвенных транспортных маршрутов). При этом используется принцип оптимальности, согласно которому всякое новое частичное решение должно быть оптимальным относительно достигнутого состояния.
Задачи на графах охватывают многообразный комплекс сетевых задач: кратчайший путь, наиболее длинный путь (проблема управления сложными комплексами работ - строительных, проектных, подготовки запуска и т.д.), наибольший поток, выявление критических звеньев сети, анализ структуры коллектива (отношения доминирования, коалиции и их устойчивость и т.п.).
Теория решений изучает оптимальное поведение при неопределенности (игры с природой) и при конфликтных интересах ("стратегические" игры).
Сюда же можно отнести "дифференциальные" игры, связанные с оптимальным перехватом уклоняющейся цели.
Теория запасов рассматривает расчет такой стратегии восполнения запасов, при которой суммарные затраты на поставки, хранение избыточного запаса и "штрафы" за неполное удовлетворение спроса минимальны, а дополнительные ограничения выполнены.
Теория массового обслуживания имеет дело со случайными процессами накапливания и рассасывания очередей. Она незаменима при оценке оперативности работы систем.
187
Динамика боя рассматривает подходы к определению потенциала противоборствующих сторон и оценку влияния на ход и исход боевых действий таких факторов, как мощность боеприпасов, скорострельность, точность стрельбы, рассредоточенность и степень защищенности боевых единиц, упреждение в начале боевых действий и пр.
Кроме того, следует отметить многочисленные переплетения между названными направлениями (линейное программирование и теория игр; графы, динамическое программирование и транспортные задачи; управление запасами и теория очередей).
Реакция системы па расширение имени файла состоит в следующем. При выборе файла с определенным расширением нажатие клавиши приводит к запуску соответствующей обрабатывающей программы. Например, при выборе файла,
73
нажатие приводит к запуску системы программирования Турбо-Пролог с загрузкой выбранного файла программы для редактирования и обработки.
Информация для задания реакции системы на расширение имени файла находится в файле nc.ext, называемом файлом расширений оболочки. Он представляет собой текстовый файл. Каждая строка этого файла задает один вариант реакции на конкретное расширение имени. Например:
txt:C:\EDITORS\LEX\lexicon!.!
При задании реакции системы на расширение имени файла используются следующие правила замещения параметров конкретными значениями при выборе файла:
!- именем выбранного файла;
!.! - составным именем выбранного файла;
!\ - полной спецификацией рабочего каталога (без указания имени текущего привода и следующего за ним двоеточия), которым является каталог, содержащий выбранный файл;
!: - именем текущего привода, за которым следует двоеточие.
Для одного расширения, например pas, можно задавать более чем одну строку реакции. В этом случае после выбора файла и нажатия клавиши выводится панель, на которой пользователю нужно выбрать требуемый вариант.
Файл nc.ext можно создать или изменить с помощью обычного текстового редактора. В оболочке NC для этих целей служит команда Команды | Обработка расширений (Commands \ Extension file edit). После выдачи команды на экране отображается список вариантов реакции или просто пустое окно для их ввода.
Microsoft Graph 5.0 предоставляет 14 типов диаграмм (8 плоских и 6 объемных), в каждом из которых имеются свои подтипы.
Напомним, что тип диаграммы, создаваемой на основе существующей таблицы, определяется в процессе диалога с Мастером диаграмм. Для диаграммы, создаваемой "на пустом месте" первоначально устанавливается тип, используемый по умолчанию.
Тип диаграммы можно изменить в любой момент. Для этих целей можно воспользоваться одноименной кнопкой панели инструментов Стандартная (Standard), a также командой Тип диаграммы... (Chart Type...) меню Формат (Format).
При настройке внешнего вида диаграммы удобно пользоваться встроенными типовыми наборами оформления (автоформатирования) диаграмм. Обращение для выбора
178
и применения встроенного набора выполняется с помощью команды Автоформат (Autoformat) меню Формат (Format). Более того, пользователь может задать свой вариант автоформата под будущие нужды настройки вновь создаваемых диаграмм.
Пример 1. Задание типа объемной диаграммы.
Рассмотрим задание и настройку параметров объемной гистограммы.
Зададим команду Тип диаграммы... (Chart Type...) меню Формат (Format).
В открывшемся диалоговом окне установим переключатель Объемная (3-D).
Щелчком мыши выберем тип диаграммы (объемную гистограмму).
Нажав кнопку Параметры... (Options...), откроем диалоговое окно Форматирование объемной гистограммы (Formatting 3-D Column Chart).
С помощью вкладок окна выберем подтип диаграммы, выполним настройку ряда параметров (глубину и ширину зазора, глубину диаграммы).
Нажмем ОК.
Зададим команду Объемный вид (3-D View) меню Формат (Format).
В открывшемся диалоговом окне Форматировать объемный вид (Formatting 3-D View) в полях Подъем (Elevation), Поворот (Rotation) и Перспектива (Perspective) введем или установим с помощью кнопок подходящие значения для получения требуемого вида диаграммы.
Нажмем ОК.
Замечание.
Тип диаграммы (без выбора подтипа и без настройки параметров диаграммы) удобно выбирать с помощью кнопки панели инструментов Стандартная (Standard).
Процесс запуска ПЭВМ и подготовки ОС к работе включает следующие шаги:
При включении ПЭВМ управление передастся BIOS. Она выполняет тестирование памяти, проверку состояния аппаратуры и инициализирует устройства. Параметры конфигурации компьютера извлекаются из так называемой энергонезависимой памяти (CMOS). При необходимости перед началом инициализации устройств нажатием клавиши можно передать управление программе изменения параметров конфигурации.
Управление конфигурацией ПЭВМ (задание параметров жесткого диска, указание привода для системного диска, задание пароля и др.) выполняется с помощью программы Setup.
Вызов загрузчика и загрузка ОС с помощью системного загрузчика.
Установка драйверов, задание окружения, путей поиска файлов, числа буферов, числа одновременно открываемых файлов, кодовой таблицы и т.п. выполняются с помощью файлов автозапуска autoexec.bat и конфигурации config.sys.
Схематично взаимодействие прикладных программ с аппаратно-программным обеспечением ПЭВМ показано на рис. 3.1.
Файловая система является одной из важнейших подсистем, поскольку вся информация на внешних носителях хранится в виде файлов. Обращения к файловой системе прикладные программы через функции прерываний MS DOS. С их помощью выполняются все файловые операции: создание и удаление файлов и каталогов, запись и чтение данных, получение справочной информации и другие. Файловая система работает с внешними накопителями с помощью драйверов, последние, в свою очередь, пользуются помощью BIOS.
57
Рис. 3.1. Схема взаимодействия прикладных программ с аппаратно-программным обеспечением ПЭВМ
Система управления памятью используется для распределения основной памяти выполняемым программам. Управление памятью MS DOS выполняет с помощью блоков управления памятью - МСВ (Memory Control Block). Память разбивается на блоки. Каждому блоку предшествует МСВ, в котором записываются характеристики этого блока. Для вновь запускаемой программы выделяется нужное количество блоков. При освобождении памяти и при выполнении новых запросов на выделение памяти также используются МСВ с проверкой правильности их содержимого.
Чтобы запустить Word 7.0, достаточно щелкнуть мышью по кнопке Пуск (Start), в группе Программы (Programms) выбрать значок Word 7.0 и щелкнуть по нему.
Работа пользователя с документами выполняется в окне текстового процессора (рис. 8.1). Окно Word 7.0 включает в себя следующие элементы: строку заголовка, главное меню, панели инструментов, горизонтальную и вертикальную линейки, окно документа (одно или несколько окон одного или нескольких документов), строку состояния. Состав
109
всех перечисленных элементов может изменяться в соответствии с настройками. Дадим им краткую характеристику.
Рис. 8.1. Вид окна Word 7.0
1. Главное меню. Задание команд главного меню можно выполнить щелчком мыши в имени пункта меню с последующим выбором нужной команды и повторным щелчком.
Для задания команды с помощью клавиатуры нужно нажать клавишу , затем с помощью клавиш управления курсором (клавиш со стрелками) выбрать нужный пункт меню и команду и нажать .
Изменение состава пунктов главного меню пли состава команд в любом из пунктов главного меню выполняется по команде Настройка...(Customize...) меню Сервис (Tools) с помощью вкладки Меню (Menus) диалогового окна Настройка (Customize).
2. Панели инструментов. Позволяют удобно задавать команды - щелчком мыши на соответствующем значке. В окне текстового процессора имеются панели инструментов Стандартная (Standard) и Форматирование (Formatting). Убрать или поместить в окно любую из панелей инструментов можно по команде Панели инструментов (Toolbars) меню Вид ( View).
3. Окно активного документа. Па рисунке окно документа развернуто максимально при заданных размерах окна текстового процессора.
4. Кнопка системного меню текстового процессора. Вызывает системное меню текстового процессора, содержащее команды управления размещением и размерами окна текстового процессора, а также сворачиванием и закрытием текстового процессора.
5. Кнопка системного меню документа. Вызывает системное меню активного документа, содержащее команды управления размещением и размерами, а также сворачиванием и закрытием окна документа.
Обычно Excel запускается из стартового меню Windows. После запуска программы на экране открывается главное окно программы (рис. 11.1).
Структура окна Excel во многом походит на структуру окна текстового процессора Word. Здесь также есть строка главного меню, панели инструментов, окно активной рабочей книги (документа), кнопки системного меню Excel и документа, кнопки управления размерами окна Excel и документа, строка состояния, горизонтальная и вертикальная полосы прокрутки. Назначение перечисленных элементов соответствует назначению одноименных элементов Word. Внешний вид главного окна (отображение или скрытие отдельных элементов) можно изменить выбором соответствующих параметров функционирования (рис. 11.2).
141
Рис. 11.1. Главное окно Excel.
Поясним дополнительные элементы окна Excel, отсутствующие в Word.
Строка формул. Предназначена для отображения и редактирования содержимого текущей ячейки. Строка состоит из трех частей.
Рис. 11.2. Диалоговое окно Параметры, вкладка Вид
142
В правой части отображается содержимое ячейки, которое можно редактировать с помощью кнопок, расположенных в центре строки. Как правило, ввод данных в ячейку и редактирование ее содержимого осуществляется непосредственно в самой ячейке. Однако эти операции можно выполнить также с помощью курсора ввода, помещенного щелчком мыши в правую часть строки формул. В строке формул всегда отображается формула, записанная в текущей ячейке таблицы, в то время как в самой этой ячейке может наблюдаться результат вычисления по отображаемой формуле.
В левой части, которая называется полем имен, отображается адрес активной ячейки, имя или размер выделенного диапазона ячеек. Список имеющихся имен диапазонов ячеек открывается щелчком мыши по кнопке со стрелкой, расположенной в правой части этого поля. Выбор одного из имен в списке используется для быстрого выделения и перехода к соответствующему диапазону ячеек.
Ярлычки листов и кнопки их прокрутки предназначены для отображения и выбора соответствующего листа рабочей книги.
Рассмотрим основные виды зависимостей между атрибутами отношений: функциональные, многозначные и транзитивные.
Понятие функциональной зависимости является базовым, так как на его основе формулируются определения всех остальных видов зависимостей.
Определение функциональной зависимости. Атрибут В функционально зависит от атрибута А, если каждому значению А соответствует в точности одно значение В. Математически функциональная зависимость В от А обозначается записью А->В. Это означает, что во всех кортежах с одинаковым значением атрибута А атрибут В будет иметь также одно и то же значение. Отметим, что А и В могут быть составными - состоять из двух и более атрибутов.
В отношении на рис. 19.7 можно выделить функциональные зависимости между атрибутами ФИО-Жаф, ФИО->Должн, Должн->0клад, ФИО->Предмет. В отношении на рис. 19.7 ключ является составным и состоит из атрибутов ФИО, Предмет, Группа. Если отношение находится в первой нормальной форме, то все неключевые атрибуты функционально зависят от ключа с различной степенью зависимости.
Частичной зависимостью называется зависимость неключевого атрибута от части составного ключа. В рассматриваемом отношении атрибут Должн находится в функциональной зависимости от атрибута ФИО, являющегося частью ключа. Тем самым атрибут Должн находится в частичной зависимости от ключа отношения.
238
Альтернативным вариантом является полная функциональная зависимость неключевого атрибута от всего составного ключа. В нашем примере атрибут ВидЗан находится в полной функциональной зависимости от составного ключа.
Атрибут С зависит от атрибута А транзитивно, если для атрибутов А, В, С выполняются условия А -> В и В -> С, но обратная зависимость отсутствует. В отношении на рис. 19.7 транзитивной зависимостью связаны атрибуты:
ФИО ->Должн -> Оклад
Между атрибутами может иметь место многозначная зависимость.
Определение многозначной зависимости. В отношении R атрибут В многозначно зависит от атрибута Л, если каждому значению А соответствует множество значений В, не связанных с другими атрибутами из R.
Многозначные зависимости могут быть "один ко многим" (1:М), "многие к одному" (М:1) или "многие ко многим" (М:М), обозначаемые соответственно: А-> > В, А < >В.
Например, пусть преподаватель ведет несколько предметов, а каждый предмет может вестись несколькими преподавателями, тогда имеет место зависимость ФИО"-"Предмет.