
Свойства отношений.
Отсутствие кортежей-дубликатов. Из этого свойства вытекает наличие у каждого кортежа первичного ключа. Для каждого отношения, по крайней мере, полный набор его атрибутов является первичным ключом. Однако, при определении первичного ключа должно соблюдаться требование "минимальности", т.е. в него не должны входить те атрибуты, которые можно отбросить без ущерба для основного свойства первичного ключа - однозначно определять кортеж.
Отсутствие упорядоченности кортежей.
Отсутствие упордоченности атрибутов. Для ссылки на значение атрибута всегда используется имя атрибута.
Атомарность значений атрибутов, т.е. среди значений домена не могут содержаться множества значений (отношения).
Понятие алгоритма.
Алгоритм – совокупность правил, предписаний исполнителю-компу совершить последовательность действий, направленных на достижение указанной цели, решение поставленной задачи.
Способы изображения алгоритма:
Словесный;
Формульно-словесный;
Графический (чертежи, схемы, блок-схемы);
Формализованные языки – языки программирования.
Блок-схема – графическое изображение структуры алгоритма, в котором каждый этап процесса обработки данных представляется в виде геометрических фигур или блоков, имеющих определенную конфигурацию, в зависимости от характера выполняемых действий.
Блок-схемы бывают:
основными – обозначают действие;
вспомогательными – обозначают соединение между блоками.
Алгоритм, в котором есть структура СЛЕДОВАНИЕ называется ЛИНЕЙНЫМ.
Следование
- это расположение действий друг за
другом.
Алгоритм, в котором есть структура ВЕТВЛЕНИЕ называется РАЗВЕТВЛЯЮЩИМСЯ.
Ветвление - это выбор действия в зависимости от выполнения какого-нибудь условия.
Алгоритм, в котором есть структура ЦИКЛ называется ЦИКЛИЧЕСКИМ.
Цикл - это неоднократное повторение каких-либо действий.
Принципы разработки алгоритмов и программ
Разработке алгоритма предшествуют такие этапы, как формализация и моделирование задачи. Формализация предполагает замену словесной формулировки решаемой задачи краткими символьными обозначениями, близкими к обозначениям в языках программирования или к математическим. Моделирование задачи является важнейшим этапом, целью которого является поиск общей концепции решения. Обычно моделирование выполняется путем выдвижения гипотез решения задачи и их проверке любым рациональным способом (прикидочные расчеты, физическое моделирование и т.д.). Результатом каждой проверки является либо принятие гипотезы, либо отказ от нее и разработка новой.
При разработке алгоритма используют следующие основные принципы.
Принцип поэтапной детализации алгоритма (другое название — "проектирование сверху-вниз"). Этот принцип предполагает первоначальную разработку алгоритма в виде укрупненных блоков (разбиение задачи на подзадачи) и их постепенную детализацию.
Принцип "от главного к второстепенному", предполагающий составление алгоритма, начиная с главной конструкции. При этом, часто, приходится "достраивать" алгоритм в обратную сторону, например, от середины к началу.
Принцип структурирования, т.е. использования только типовых алгоритмических структур при построении алгоритма. Нетиповой структурой считается, например, циклическая конструкция, содержащая в теле цикла дополнительные выходы из цикла. В программировании нетиповые структуры появляются в результате злоупотребления командой безусловного перехода (GoTo). При этом программа хуже читается и труднее отлаживается.
Говоря о блок-схемах, как о средстве записи алгоритма, можно дать еще один совет по их разработке. Рекомендуется после внесения исправлений в блок-схему аккуратно перерисовывать ее с учетом этих исправлений. Аккуратность записи есть аккуратность мысли программиста. Аккуратно записанный и детализованный алгоритм упрощает его программирование и отладку.
Обобщим рассмотренные выше примеры и принципы разработки алгоритмов и программ и выделим главные этапы методики программирования задач.
Постановка задачи. Основное требование к постановке задачи – достаточное количество информации для решения задачи. Очень часто постановка задачи выполняется не программистом, а некоторым Заказчиком. Программист является Исполнителем заказа. От него требуется добиться от Заказчика полной информации о решаемой задаче.
Моделирование и формализация задачи. Цели этого этапа уже обсуждались выше в разделе методики разработки алгоритма. При моделировании важно иметь опыт программирования, знать возможности компьютера и языка программирования и выдвигать гипотезы с учетом этих возможностей. К разработке алгоритма следует приступать только после принятия гипотезы решения задачи. Помимо идеи решения задачи, результатами этого этапа должны быть формализованная постановка задачи типа "дано-найти" и достаточное количество контрольных примеров для последующего тестирования программы. К категории "Дано:" обычно относятся данные, вводимые в начале работы программы и обеспечивающие массовость алгоритма. К категории "Найти:" относятся данные, получаемые в результате работы программы.
Разработка алгоритма. Этот этап представляет собой реализацию идеи решения задачи (см. методику разработки алгоритма).
Тестирование алгоритма. Этап предполагает проверку алгоритма вручную с использованием подготовленных ранее контрольных примеров. Для сложных задач этот этап может оказаться весьма трудоемким, поэтому опытные программисты пропускают его и тестируют программу.
Программирование алгоритма. Программирование является формальной записью алгоритма средствами языка программирования.
Тестирование программы. Тестирование выполняется путем вывода промежуточных результатов работы программы и сравнения их с контрольным примером. Для этого либо используют специальные средства отладки программ, имеющиеся в интегрированной среде языка программирования, либо временно добавляют в программу команды вывода промежуточных значений. Уменьшить трудоемкость поиска ошибок в программе можно более тщательным проектированием алгоритма и планированием процесса тестирования на ранних стадиях разработки программы.
Эксплуатация программы и интерпретация результатов. В сложных программах может быть недостаточно тестирования для устранения всех ошибок. Очень час-то они обнаруживаются на стадии эксплуатации Заказчиком.
Успех в разработке программы зависит от двух основных факторов: соблюдения описанной выше методики и от опыта программирования. Не следует игнорировать или недооценивать этапы проектирования программы (1 – 5), выполняемые вне компьютера. "Час, потраченный на выбор алгоритма, стоит пяти часов программирования" (Д.Ван-Тассел. Стиль, разработка, эффективность, отладка и испытание программ.- М.: Мир, 1985).
Языки программирования
Прогресс компьютерных технологий определил процесс появления новых
разнообразных знаковых систем для записи алгоритмов – языков
программирования. Смысл появления такого языка – оснащенный набор
вычислительных формул дополнительной информации, превращает данный набор в
алгоритм.
Язык программирования служит двум связанным между собой целям: он дает
программисту аппарат для задания действий, которые должны быть выполнены, и
формирует концепции, которыми пользуется программист, размышляя о том, что
делать. Первой цели идеально отвечает язык, который настолько "близок к
машине", что всеми основными машинными аспектами можно легко и просто
оперировать достаточно очевидным для программиста образом. Второй цели
идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы
концепции ее решения можно было выражать прямо и коротко.
Связь между языком, на котором мы думаем/программируем, и задачами и
решениями, которые мы можем представлять в своем воображении, очень близка.
По этой причине ограничивать свойства языка только целями исключения ошибок
программиста в лучшем случае опасно. Как и в случае с естественными
языками, есть огромная польза быть, по крайней мере, двуязычным. Язык
предоставляет программисту набор концептуальных инструментов, если они не
отвечают задаче, то их просто игнорируют. Например, серьезные ограничения
концепции указателя заставляют программиста применять вектора и целую
арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее
проектирование и отсутствие ошибок не может гарантироваться чисто за счет
языковых средств.
Может показаться удивительным, но конкретный компьютер способен
работать с программами, написанными на его родном машинном языке.
Существует почти столько же разных машинных языков, сколько и компьютеров,
но все они суть разновидности одной идей простые операции производятся со
скоростью молнии на двоичных числах.
Персональные компьютеры IBM используют машинный язык микропроцессоров
семейства 8086, т.к. их аппаратная часть основывается именно на данных
микропроцессорах.
Можно писать программы непосредственно на машинном языке, хотя это и
сложно. На заре компьютеризации(в начале 1950-х г.г.), машинный язык был
единственным языком, большего человек к тому времени не придумал. Для
спасения программистов от сурового машинного языка программирования, были
созданы языки высокого уровня (т.е. немашинные языки), которые стали
своеобразным связующим мостом между человеком и машинным языком компьютера.
Языки высокого уровня работают через трансляционные программы, которые
вводят "исходный код" (гибрид английских слов и математических выражений,
который считывает машина), и в конечном итоге заставляет компьютер
выполнять соответствующие команды, которые даются на машинном языке.
Существует два основных вида трансляторов: интерпретаторы, которые
сканируют и проверяют исходный код в один шаг, и компиляторы, которые
сканируют исходный код для производства текста программы на машинном языке,
которая затем выполняется отдельно.
1.1. Интерпретаторы
Одно, часто упоминаемое преимущество интерпретаторной реализации
состоит в том, что она допускает "непосредственный режим". Непосредственный
режим позволяет вам задавать компьютеру задачу вроде PRINT 3.14159*3/2.1 и
возвращает вам ответ, как только вы нажмете клавишу ENTER (это позволяет
использовать компьютер стоимостью 3000 долларов в качестве калькулятора
стоимостью 10 долларов). Кроме того, интерпретаторы имеют специальные
атрибуты, которые упрощают отладку. Можно, например, прервать обработку
интерпретаторной программы, отобразить содержимое определенных переменных,
бегло просмотреть программу, а затем продолжить исполнение.
Больше всего программистам нравится в интерпретаторах возможность
получения быстрого ответа. Здесь нет необходимости в компилировании, так
как интерпретатор всегда готов для вмешательства в вашу программу. Введите
RUN и результат вашего самого последнего изменения оказывается на экране.
Однако интерпретаторные языки имеют недостатки. Необходимо, например,
иметь копию интерпретатора в памяти все время, тогда как многие возможности
интерпретатора, а следовательно и его возможности могут не быть
необходимыми для исполнения конкретной программы.
Слабо различимым недостатком интерпретаторов является то, что они
имеют тенденцию отбивать охоту к хорошему стилю программирования. Поскольку
комментарии и другие формализуемые детали занимают значительное место
программной памяти, люди стремятся ими не пользоваться. Дьявол менее
яростен, чем программист, работающий на интерпретаторном Бейсике,
пытающийся получить программу в 120К в памяти емкостью 60К. но хуже всего
то, что интерпретаторы тихоходны. Ими затрачивается слишком много времени
на разгадывание того, что делать, вместо того чтобы заниматься
действительно делом.
При исполнении программных операторов, интерпретатор должен сначала
сканировать каждый оператор с целью прочтения его содержимого (что этот
человек просит меня сделать?), а затем выполнить запрошенную операцию.
Операторы в циклах сканируются излишне много.
Рассмотрим программу: на интерпретаторном Бэйсике 10 FOR N=1 TO 1000
20 PRINT N,SQR(N) 30
NEXT N при первом переходе по этой программе Бейсик-Интерпретатор должен
разгадать что означает строка 20:
1.преобразовать числовую переменную N в строку
2.послать строку на экран
3.переместить в следующую зону печати
4.вычислить квадратный корень из N
5.преобразовать результат в строку
6.послать строку на экран
При втором проходе цикла все это разгадывание повторяется снова, так
как абсолютно забыты все результаты изучения этой строки какую-то
миллисекунду тому назад. И так во всех следующих 998 проходах. Совершенно
очевидно, что если вам удалось каким-то образом отделить фазу
сканирования/понимания от фазы исполнения вы имели бы более быструю
программу. И это как раз то, для чего существуют компиляторы.
1.2. Компиляторы
Компилятор-это транслятор текста на машинный язык, который считывает
исходный текст. Он оценивает его в соответствии с синтаксической
конструкцией языка и переводит на машинный язык. Другими словами,
компилятор не исполняет программы, он их строит. Интерпретаторы невозможно
отделить от программ, которые ими прогоняются, компиляторы делают свое дело
и уходят со сцены. При работе с компилирующим языком, таким как Турбо-
Бейсик, вы придете к необходимости мыслить о ваших программах в признаках
двух главных фаз их жизни: периода компилирования и периода прогона.
Большинство программ будут прогоняться в четыре - десять раз быстрее их
интерпретаторных эквивалентов. Если вы поработаете над улучшением, то
сможете достичь 100-кратного повышения быстродействия. Оборотная сторона
монеты состоит в том, что программы, расходующие большую часть времени на
возню с файлами на дисках или ожидание ввода, не смогут продемонстрировать
какое-то впечатляющее увеличение скорости.
КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1. Машинно – ориентированные языки
Машинно – ориентированные языки – это языки, наборы операторов и
изобразительные средства которых существенно зависят от особенностей ЭВМ
(внутреннего языка, структуры памяти и т.д.). Машинно –ориентированные
языки позволяют использовать все возможности и особенности Машинно –
зависимых языков:
- высокое качество создаваемых программ (компактность и скорость
выполнения);
- возможность использования конкретных аппаратных ресурсов;
- предсказуемость объектного кода и заказов памяти;
- для составления эффективных программ необходимо знать систему команд и
особенности функционирования данной ЭВМ;
- трудоемкость процесса составления программ ( особенно на машинных языках
и ЯСК), плохо защищенного от появления ошибок;
- низкая скорость программирования;
- невозможность непосредственного использования программ, составленных на
этих языках, на ЭВМ других типов.
Машинно-ориентированные языки по степени автоматического программирования
подразделяются на классы.
2.1.1. Машинный язык
Как я уже упоминал, в введении, отдельный компьютер имеет свой
определенный Машинный язык (далее МЯ), ему предписывают выполнение
указываемых операций над определяемыми ими операндами, поэтому МЯ является
командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и
др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них
сообщается информация о местонахождении операндов и типе выполняемой
операции.
В новых моднлях ЭВМ намечается тенденция к повышению внутренних языков
машинно – аппаратным путем реализовывать более сложные команды,
приближающиеся по своим функциональным действиям к операторам
алгоритмических языков программирования.
2. Языки Символического Кодирования
Продолжим рассказ о командных языках, Языки Символического Кодирования
(далее ЯСК), так же, как и МЯ, являются командными. Однако коды операций и
адреса в машинных командах, представляющие собой последовательность
двоичных (во внутреннем коде) или восьмеричных (часто используемых при
написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма
написания которых помогает программисту легче запоминать смысловое
содержание операции. Это обеспечивает существенное уменьшение числа ошибок
при составлении программ.
Использование символических адресов – первый шаг к созданию ЯСК.
Команды ЭВМ вместо истинных (физических) адресов содержат символические
адреса. По результатам составленной программы определяется требуемое
количество ячеек для хранения исходных промежуточных и результирующих
значений. Назначение адресов, выполняемое отдельно от составления программы
в символических адресах, может проводиться менее квалифицированным
программистом или специальной программой, что в значительной степени
облегчает труд программиста.
3. Автокоды
Есть также языки, включающие в себя все возможности ЯСК, посредством
расширенного введения макрокоманд - они называются Автокоды.
В различных программах встречаются некоторые достаточно часто
использующиеся командные последовательности, которые соответствуют
определенным процедурам преобразования информации. Эффективная реализация
таких процедур обеспечивается оформлением их в виде специальных макрокоманд
и включением последних в язык программирования , доступный программисту.
Макрокоманды переводятся в машинные команды двумя путями – расстановкой и
генерированием. В постановочной системе содержатся «остовы» - серии
команд, реализующих требуемую функцию, обозначенную макрокомандой.
Макрокоманды обеспечивают передачу фактических параметров, которые в
процессе трансляции вставляются в «остов» программы, превращая её в
реальную машинную программу.
В системе с генерацией имеются специальные программы, анализирующие
макрокоманду, которые определяют, какую функцию необходимо выполнить и
формируют необходимую последовательность команд, реализующих данную
функцию.
Обе указанных системы используют трансляторы с ЯСК и набор
макрокоманд, которые также являются операторами автокода.
Развитые автокоды получили название Ассемблеры. Сервисные программы и
пр., как правило, составлены на языках типа Ассемблер. Более полная
информация об языке Ассемблера см. ниже.
4. Макрос
Язык, являющийся средством для замены последовательности символов
описывающих выполнение требуемых действий ЭВМ на более сжатую форму -
называется Макрос (средство замены).
В основном, Макрос предназначен для того, чтобы сократить запись
исходной программы. Компонент программного обеспечения, обеспечивающий
функционирование макросов, называется макропроцессором. На макропроцессор
поступает макроопределяющий и исходный текст. Реакция макропроцессора на
вызов-выдача выходного текста.
Макрос одинаково может работать, как с программами, так и с данными.
1. Машинно – независимые языки
Машинно – независимые языки – это средство описания алгоритмов решения
задач и информации, подлежащей обработке. Они удобны в использовании для
широкого круга пользователей и не требуют от них знания особенностей
организации функционирования ЭВМ и ВС.
Подобные языки получили название высокоуровневых языков
программирования. Программы, составляемые на таких языках, представляют
собой последовательности операторов, структурированные согласно правилам
рассматривания языка(задачи, сегменты, блоки и т.д.). Операторы языка
описывают действия, которые должна выполнять система после трансляции
программы на МЯ.
Т.о., командные последовательности (процедуры, подпрограммы), часто
используемые в машинных программах, представлены в высокоуровневых языках
отдельными операторами. Программист получил возможность не расписывать в
деталях вычислительный процесс на уровне машинных команд, а сосредоточиться
на основных особенностях алгоритма.
2.2.1. Проблемно – ориентированные языки
С расширением областей применения вычислительной техники возникла
необходимость формализовать представление постановки и решение новых
классов задач. Необходимо было создать такие языки программирования,
которые, используя в данной области обозначения и терминологию, позволили
бы описывать требуемые алгоритмы решения для поставленных задач, ими стали
проблемно – ориентированные языки. Эти языки, языки ориентированные на
решение определенных проблем, должны обеспечить программиста средствами,
позволяющими коротко и четко формулировать задачу и получать результаты в
требуемой форме.
Проблемных языков очень много, например:
Фортран, Алгол – языки, созданные для решения математических задач;
Simula, Слэнг - для моделирования;
Лисп, Снобол – для работы со списочными структурами.
Об этих языках я расскажу дальше.
2. Универсальные языки
Универсальные языки были созданы для широкого круга задач:
коммерческих, научных, моделирования и т.д. Первый универсальный язык был
разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по
мощности универсальный язык называется Алгол-68. Он позволяет работать с
символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1
имеет развитую систему операторов для управления форматами, для работы с
полями переменной длины, с данными организованными в сложные структуры, и
для эффективного использования каналов связи. Язык учитывает включенные во
многие машины возможности прерывания и имеет соответствующие операторы.
Предусмотрена возможность параллельного выполнение участков программ.
Программы в Пл/1 компилируются с помощью автоматических процедур. Язык
использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не
только динамическое, но и управляемое и статистическое распределения
памяти.
2.2.3. Диалоговые языки
Появление новых технических возможностей поставило задачу перед
системными программистами – создать программные средства, обеспечивающие
оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.
Эти работы велись в двух направлениях. Создавались специальные
управляющие языки для обеспечения оперативного воздействия на прохождение
задач, которые составлялись на любых раннее неразработанных (не диалоговых)
языках. Разрабатывались также языки, которые кроме целей управления
обеспечивали бы описание алгоритмов решения задач.
Необходимость обеспечения оперативного взаимодействия с пользователем
потребовала сохранения в памяти ЭВМ копии исходной программы даже после
получения объектной программы в машинных кодах. При внесении изменений в
программу с использованием диалогового языка система программирования с
помощью специальных таблиц устанавливает взаимосвязь структур исходной и
объектной программ. Это позволяет осуществить требуемые редакционные
изменения в объектной программе.
Одним из примеров диалоговых языков является Бэйсик.
Бэйсик использует обозначения подобные обычным математическим
выражениям. Многие операторы являются упрощенными вариантами операторов
языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг
задач.
2.2.4. Непроцедурные языки
Непроцедурные языки составляют группу языков, описывающих организацию
данных, обрабатываемых по фиксированным алгоритмам (табличные языки и
генераторы отчетов), и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения
действия, таблицы решений дают возможность в наглядной форме определить,
какие условия должны быть выполнены прежде чем переходить к какому-либо
действию. Одна таблица решений, описывающая некоторую ситуацию, содержит
все возможные блок-схемы реализаций алгоритмов решения.
Табличные методы легко осваиваются специалистами любых профессий.
Программы, составленные на табличном языке, удобно описывают сложные
ситуации, возникающие при системном анализе.
Основные конструкции языка VB. Форма и элементы управления
Как и любой другой язык, Visual Basic имеет свой алфавит. В него входят:
Прописные и строчные буквы латинского алфавита;
Прописные и строчные буквы кириллицы;
Цифры от 0 до 9;
Символ подчеркивания «_».
Из этих символов конструируются идентификаторы – имена переменных, констант, процедур, функций, меток переходов, а также имена типов. Кроме в него входят:
Неизображаемые символы (пробел, табуляция, переход на новую строку)
Составные символы.
Программный код Visual Basic представляет собой последовательность лексических единиц (лексем), записанных в соответствии с принятыми синтаксическими правилами, которая реализует некоторую семантическую конструкцию. Для обеспечения читаемости и понятности в тексте программы помещаются комментарии. Комментарий представляет собой последовательность любых символов, размещаемых на одной строке исходного текста программы, которая начинается со знака «`»(апостроф) или с ключевого слова Rem.
Лексема – это единица текста программы, которая имеет определенный смысл для компилятора и которая не может быть разбита в дальнейшем.
Панель элементов содержит элементы управления, которые можно поместить в форме. Открыть панель элементов можно с помощью команды Вид → Панель элементов или кнопки Панель элементов. В исходном состоянии на рабочей поверхности главного окна присутствует панель элементов, называемая стандартной. Состав:
Выбор объектов
Надпись
Поле
Поле со списком
Список
Флажок
Переключатель
Выключатель
Рамка
Кнопка
Набор вкладок
Набор страниц
Полоса прокрутки
Счетчик
Рисунок
RefEdit
Пользовательская форма служит базой диалогового окна, на которой в зависимости от решаемой задачи размещают нужные элементы управления. Редактор форм является основным инструментом визуального программирования. Чтобы добавить форму в проект, нужно выполнить команду Insert → UserForm. После ее выполнения появится пустое окно редактирования формы и панель элементов. Сетка на форме служит для удобства размещения элементов, шаг сетки можно изменить: Tool → Options, вкладка Общие. Для добавления элементов на панель элементов: Сервис → Дополнительные элементы.
Определение понятия переменной.
Переменные – это объекты, предназначенные для хранения данных. В различные моменты времени переменные могут хранить различные значения. Перед использованием переменных в программе их нужно объявлять. При объявлении переменной необходимо указать. Что объявляется переменная, задать имя переменной и указать ее тип. Существуют следующие базовые типы переменных:
В отличие от констант, содержание переменных может изменяться при выполнении программы. Хотя в Basic допускается просто применять новую переменную в нужном месте программы, следует все переменные объявлять явно в начале программы. По области определения различают следующие виды переменных: а) локальные – объявляются внутри процедуры или функции и доступны только внутри такой подпрограммы, б) контейнерные – объявляются с ключевым словом Dim в секции (General)(Declarations) контейнера (форма, модуль или класс) и доступны только в соответствующем текущем контейнере, в) глобальные - объявляются с ключевым словом Public в секции контейнера и доступны во всем проекте.
Локальные переменные при выходе из процедуры удаляются из памяти и при новом вызове процедуры инициализируются заново, Однако, если объявить переменную как статическую, то при выходе из процедуры ее содержимое сохраняется (хотя сама переменная оказывается недоступной), при новом же вызове процедуры переменная получает значение, которое она имела при последнем выходе из данной процедуры.
Синтаксис объявления переменной:
Dim [Shared] | ReDim | Static | Private | Public ИМЯ_ПЕРЕМЕННОЙ As КЛАСС | ТИП
где Shared – указание на то, что переменную можно использовать во всех функциях и процедурах модуля; ИМЯ_ПЕРЕМЕННОЙ – имеет максимальную длину до 255 символов и образуется по тем же правилам, что и имя константы; As ТИП – присутствует в объявлении, если в имени переменной последний символ не является идентификатором типа; например, Dim k As Integer но Dim c%; КЛАСС для объектных переменных, а ТИП для обычных переменных.
ПО 25 Имя и значение переменной, Объявление типа переменной в программе, Присвоение переменной значения, Соглашение об именах переменной.
Локальные переменные при выходе из процедуры удаляются из памяти и при новом вызове процедуры инициализируются заново, Однако, если объявить переменную как статическую, то при выходе из процедуры ее содержимое сохраняется (хотя сама переменная оказывается недоступной), при новом же вызове процедуры переменная получает значение, которое она имела при последнем выходе из данной процедуры.
Синтаксис объявления переменной:
Dim [Shared] | ReDim | Static | Private | Public ИМЯ_ПЕРЕМЕННОЙ As КЛАСС | ТИП
где Shared – указание на то, что переменную можно использовать во всех функциях и процедурах модуля; ИМЯ_ПЕРЕМЕННОЙ – имеет максимальную длину до 255 символов и образуется по тем же правилам, что и имя константы; As ТИП – присутствует в объявлении, если в имени переменной последний символ не является идентификатором типа; например, Dim k As Integer но Dim c%; КЛАСС для объектных переменных, а ТИП для обычных переменных.
В одном операторе объявления может присутствовать несколько однотипных переменных, имена которых разделяются запятыми: Dim i As Integer, k As Integer. Для каждой переменной ее тип должен быть указан явно, иначе она получит тип Variant (см. ниже).
В одном операторе объявления можно также объединять несколько объявлений переменных разных типов: Dim i As Integer, s As Double.
В Basic каждая переменная при первом ее использовании либо сразу же после явного объявления инициализируется начальным значением, например, для переменных типа Integer по умолчанию используется значение 0. Однако целесообразно выполнять явную инициализацию переменных требуемыми начальными значениями.
Присвоить некоторое значение переменной можно оператором, имеющим следующий шаблон:
ИМЯ_ПЕРЕМЕННОЙ=СТРОКОВОЕ_ВЫРАЖЕНИЕ | АРИФМЕТИЧЕСКОЕ_ВЫРАЖЕНИЕ
где Арифметическое_выражение – это комбинация чисел, арифметических констант, числовых переменных и некоторых функций, которые связаны между собой арифметическими операциями; Строковое_выражение – это комбинация текстов, текстовых констант, текстовых переменных и определенных функций, которые связаны операцией + или &; например, k = 5 или cat = “Ветка”.
Тип переменной должен соответствовать типу выражения. Необходимо также соблюдать соответствие между типом числовой переменной и типом арифметического выражения. VB пытается автоматически преобразовывать типы данных. Для явного преобразования типов используются следующие функции: CBool преобразует в Boolen, CByte – в Byte, CCur – в Currency, CDate – в Date, CDbl – в Double, Cint – в Integer, CLng – в Long, CSng – в Single, CStr – в String, Cvar – в Variant, CVErr – в Error.
По умолчанию, если тип данных явно не указывается, переменной назначается тип Variant, который в различных ситуациях может представлять разные типы данных. При использовании переменных типа Variant для арифметических операций они должны содержать нечто, что может интерпретироваться как числа; для строковых операций вместо сцепления + надо использовать &.
До присвоения значений переменная Variant имеет значение Empty, отличающееся от 0, от строки нулевой длины "" или от значения Null; для тестирования на присвоенность какого-либо значения используется функция IsEmpty: If IsEmpty(v2) Then v2 = 0.
Значение Null распространяется по всему выражению, если хотя бы одна его часть содержит это значение; может присваиваться только вариантной переменной. Для выяснения, содержит ли переменная значение Null используется функция IsNull: If IsNull(v2) Then z = Null. Переменные не получают значения Null, помимо явного присвоения.
Кроме стандартных (встроенных) типов данных можно, используя ключевое слово Type, создавать типы данных, определяемые пользователем:
[Private | Public] Type ИМЯ_ТИПА
ЭЛЕМЕНТ_1 [([РАЗМЕРНОСТЬ])] As ТИП
ЭЛЕМЕНТ_2 [([РАЗМЕРНОСТЬ])] As ТИП …
End Type
Определение общего (Public) собственного типа данных возможно только в секции (General)(Declarations) модуля. Для определения пользовательского типа данных в форме или в модуле класса используется слово Private.
Пример:
‘(General)(Declarations) (Module)
Type usrPerson ‘Объявление пользовательского типа
Name As String
Number As Integer
End Type
Public usrSupp As usrPerson, usrCopy As usrPerson ‘ Объявление двух переменных
‘ типа usrPerson
Private Sub NamNum()
usrSupp.Name = “Natali Goncharova”
usrSupp.Number = 999
usrCopy = usrSupp
End Sub
Пользовательские типы могут быть составными. В этом случае сначала нужно определить базисный тип, который будет использоваться далее в составных типах:
‘(General)(Declarations) (Module)
Type usrName ‘Объявление базисного типа
Name As String
Famile As String
End Type
Private Type usrPerson ‘Объявление составного типа типа
Name As usrName
Number As Integer
End Type
Dim usrSupp As usrPerson
Private Sub NamNum()
usrSupp.Name = “Natali ”
usrSupp. Famile = “ Goncharova ”
usrSupp. Number = 999
End Sub
При образовании имени переменных считается общепризнанной “венгерская нотация”, в соответствии с которой имя состоит из одного или нескольких префиксов и базового имени: <префикс><Базовое_имя>. Базовое имя (имя, задаваемое пользователем) начинается с большой буквы.
--
--
Вычисление значения арифметического выражения
Основные арифметические операции в порядке убывания их приоритета:
( ) – круглые скобки; ^ – возведение в степень; - – операция изменения знака; * – умножение; / – деление; + – сложение; - – вычитание.
Существуют также следующие операции: \ – деление с усечением и MOD – вычисление остатка от деления, например, результат операции 19 MOD 5 будет равен числу 4.
Операции сравнения:
– больше; < – меньше; >= – больше или равно; <= – меньше или равно; = – равно; <> – не равно.
Абсолютное значение заданного арифметического выражения: Abs().
Тригонометрические функции:
Sin(УГОЛ), Cos(УГОЛ), Tan(УГОЛ), Atn(АРИФМ.ВЫРАЖ);
где аргумент УГОЛ задается в радианах; функция арктангенса возвращает значение угла в радианах; для преобразования из градусной меры в радианную и обратно используются формулы: град=рад*(180/pi) и рад=град*(pi/180) при pi=3.14159.
Вычисление экспоненты: Exp() – вычисление значения е в степени х (антилогарифм), где е=2.71; результат имеет тип Single.
Вычисление натурального логарифма: Log(), т.е. ln x при основании е; результат имеет тип Single.
Преобразование к целому типу: Int() – наибольшее целое, не превосходящее значения аргумента.
Выделение целой части арифметического значения аргумента: Fix().
Извлечение квадратного корня Sqr(); результат имеет тип Single.
Определение знака числа Sgn(); возвращает -1, 0, +1, если аргумент соответственно меньше, равен или больше нуля.
Преобразование числа в строку Str$().
Преобразование строки в число: Val().
Определение или изменение текущей системной даты Date: dat$=Date – определение; Date="09-09-1945" – изменение.
Определение или изменение системного времени Time.
Rnd(n) возвращает случайное число в диапазоне от 0 до 1; при n < 0 – определенное число, зависящее от n, при n > 0 – новое число, при n = 0 – последнее выданное число.
Функции в языке Бейсик
В языке Basic процедуры и функции объединяются под общим названием подпрограммы.
Для создания процедуры в программе надо ввести в окне редактирования кода заголовок Sub ИМЯ_ПРОЦЕДУРЫ, появится пустой шаблон процедуры:
Sub ИМЯ_ПРОЦЕДУРЫ
End Sub
В пространство между именем и ключевыми словами End Sub вносятся необходимые операторы. Если при вызове процедуры ей должны передаваться какие-либо значения (аргументы), то в заголовке после имени надо через запятую перечислить соответствующие переменные или конкретные значения.
Для выбора существующих процедур в окне редактирования кода надо выбрать "(General)" из списка Object и выбрать процедуру в окне Procedure.
Для просмотра процедуры в другом модуле надо: 1) выбрать View / Object Browser, 2) в окне Project / Library выбрать проект, 3) выбрать модуль из списка Classes и процедуру из списка Members, 4) выбрать View Definition.
Способы вызова процедуры: Call Proc1(arg1, arg2), или Proc1 arg1, arg2.
Процедуры Public в других модулях могут вызываться отовсюду в проекте; возможно, потребуется специфицировать модуль, который содержит вызываемую процедуру – это зависит от вида модуля:
1. Все вызовы снаружи модуля формы должны указывать на модуль формы, содержащий процедуру: имя_модуля.имя_процедуры();
2. При вызове процедуры из модуля класса также должен указываться экземпляр класса, но в отличие от формы экземпляр класса предварительно должен быть объявлен как объектная переменная, например Dim DemClass As New Class1, тогда обращение будет иметь вид DemClass.Sub1.
Параметры пользовательских процедур по умолчанию имеют тип Variant.
При передаче параметров по значению используется ключевое слово By Val; фактически, передается только копия переменной и процедура не изменяет оригинальную переменную. Пример:
Sub CC(By Val x As Integer)
....
End Sub
Передача параметров по ссылке дает процедуре доступ к оригиналу переменной, что позволяет изменить ее значение.
Обычно процедуры используются для представления часто повторяющихся фрагментов программы и не возвращают каких либо значений, поэтому в их имени отсутствует символ, указывающий тип возвращаемого значения.
Примеры процедур:
1. Передача параметра из процедуры
Rem Программа_2.4 – Передача параметра из процедуры с помощью переменной s
Sub Main()
Dim s As Single, x As Single, y As Single
x = 5: y = 15
Call sumir (x, y, s) ‘ вызов процедуры суммирования
MsgBox "s = " & Str(s)
End Sub
Sub sumir (x!, y!, s!) ‘ определение процедуры суммирования двух чисел
s! = x! + y! ‘ в переменную s помещается сумма двух чисел
End Sub
2. Массив, как параметр процедуры
Rem Программа_2.5 – Массив, как параметр процедуры
Sub Main()
Dim n As Integer
Dim s As Single
Dim x(2) As Single
n = 2
x(1) = 5: x(2) = 15: s = 0
Call sumir(x(), n, s) ‘ вызов процедуры суммирования элементов массива
MsgBox "s = " & Str(s)
End Sub
Sub sumir (x() As Single, n As Integer, s As Single)
Dim i As Integer
For i = 1 To n
s = s + x(i)
Next i
End Sub
Под функцией понимается группа операторов, объединенных под оригинальным именем. Последний символ в имени функции определяет тип возвращаемого ею значения.
Пользовательские функции (не библиотечные функции, составляемые самим пользователем) объявляются при вводе в окне редактирования кода заголовка из ключевого слова Function и следующего за ним имени функции с требуемыми аргументами в круглых скобках. После этого автоматически появляется следующий шаблон:
Function ИМЯ_ФУНКЦИИ
End Function
В пространство между именем функции и ключевыми словами End Function вносятся необходимые операторы.
Если при вызове функции ей должны передаваться какие-либо значения (аргументы), то в заголовке после имени функции надо через запятую перечислить соответствующие переменные.
Общий синтаксис определения функции:
Function ИМЯ_ФУНКЦИИ(ПАРАМЕТР_1[, ПАРАМЕТР_2]...) [Static]
ОПЕРАТОР_1
[ОПЕРАТОР_2]
...
ИМЯ_ФУНКЦИИ = ВЫРАЖЕНИЕ
End Function
где ПАРАМЕТР – элемент данных, передаваемый функции при ее вызове; Static – при наличии в объявлении функции данного ключевого слова локальные переменные, объявленные в теле функции, сохраняют свои значения в промежутках между вызовами этой функции.
Способы вызова функций: X = fun1(Y), или Call fun1 Y.
Если функция должна возвращать символьное (строковое) значение, то последним символом в ее имени должен быть знак $.
Каждая функция всегда возвращает только одно значение.
Примеры функций:
1. Передача параметра из функции
Rem Программа_2.6 – Передача параметра из функции
Sub Main()
Dim x As Single, y As Single, s As Single
x = 5: y = 15
s = sumir(x, y) ‘ вызов функции суммирования двух чисел
MsgBox "s = " & Str(s)
End Sub
Function sumir! (x!, y!) ‘ определение функции суммирования двух чисел
sumir! = x! + y!
End Function
2. Пример функции, возвращающей строковое (символьное) значение
Rem Пример_2.7 – Использование Функции, возвращающей строковое значение
Sub Main()
Dim sl As String
sl = "БЫЛО"
MsgBox sl
sl = fun$(sl) ’ функция меняет для переменной sl значение ‘’БЫЛО “ на значение “СТАЛО”
MsgBox sl
End Sub
Function fun$ (sl As String)
sl = "СТАЛО"
fun$ = sl ‘Этим оператором функция возвращает значение – отличие от Sub
End Function
Обычно главная программа, функции и процедуры содержатся в одном файле, причем функции и процедуры размещаются в конце файла. Можно создать отдельный файл с функциями и процедурами, а затем, скопировав этот файл под другим именем и при необходимости, сохранив в копии только нужные функции и процедуры, можно записать новую главную программу в созданной копии файла функций и процедур. Среди процедур главной программы должна присутствовать одна процедура с именем Main().
Для того чтобы какая-либо переменная из главной программы была доступна функциям и процедурам без передачи ее в качестве параметра, она должна быть объявлена в главной программе с ключевым словом Shared.
Переменные типа Private доступны всем процедурам модуля, переменные Public доступны другим модулям; как и все переменные уровня модуля, они объявляются в начале модуля.
Переменные уровня процедуры объявляются в операторах Dim и Static; первые существуют только во время выполнения процедуры, а вторые – в течение всего времени выполнения приложения. Если поместить перед именем процедуры Static, то все ее локальные переменные будут статическими.
Переменная в модуле не может иметь то же имя, что и процедура или тип, которые определены в этом же модуле.
Если переменные Public в различных модулях имеют одно имя. то для их различения надо квалифицировать имена именем модуля. Например, если в модулях М1 и М2 имеются переменные intX, то обращение к этим переменным должно иметь следующий вид: М1.intX и М2.intX.
Информационно-поисковые системы
Самая главная проблема, возникающая при работе с Сетью - быстро найти нужную информацию и разобраться в ней, оценить информационную ценность того или иного ресурса для своих целей. Речь идет о поисковых серверах, служащих отправной точкой для пользователей Сети. Поисковые сервера достаточно многочисленны и разнообразны. Принято различать поисковые индексы и каталоги. Сервера-индексы работают следующим образом: регулярно прочитывают содержание большинства веб-страниц Сети ("индексируют" их), и помещают их полностью или частично в общую базу данных. Выдача результатов поиска обычно состоит из выдержек рекомендуемых вниманию пользователя страниц и их адресов (URL), оформленных в виде гиперссылок. Каталоги выросли из списков интересных ссылок, закладок (bookmarks). По сути дела они представляют собой многоуровневую смысловую классификацию ссылок, построенную по принципу "от общего к частному".
Вы заходите на свой любимый поисковый сервер, в строке запроса набираете на нужном языке ключевые слова или фразу, соответствующие ресурсу или ресурсам Сети, которые вы хотите найти. Затем нажимаете "Поиск", и через несколько секунд в рабочем окне браузера появляются результаты. В идеальном случае тот ресурс, который вы ищете, поисковый сервер поместит на первую страницу результатов поиска, и вы сразу распознаете нужную ссылку по краткому описанию. Все эти сервера в настоящее время предлагают и полнотекстовый поиск, и поиск по категориям, таким образом сочетая в себе достоинства индексирующего сервера и каталога. http://www.yahoo.com/ http://altavista.digital.com/ http://www.hotbot.com/ http://www.infoseek.com/ http://www.northernlight.com/ http://www.google.com/. Еще один яркий пример удачной интеграции различных служб Сети на основе Web - архивы программного обеспечения, такие как http://www.tucows.com/, http://www.windows95.com/, http://www.freeware.ru/. Они организованы по сходному с поисковыми каталогами принципу: сначала пользователь выбирает зеркало (копию) архива, с которым он может обмениваться данными на большой скорости, затем свою операционную систему, потом интересующую его категорию программ и конкретную программу, которая поможет решить его насущные проблемы. Архивы организованы по-разному; так, не на всех нужно выбирать зеркало архива. Но в большинстве своем они имеют удобный и понятный пользователю интерфейс, с которым просто разобраться.
Основные понятия вычислительных сетей
Локальные вычислительные сети (ЛВС) - это коммуникационная система, которая поддерживает в пределах одного здания или некоторой ограниченной территории один или несколько высокоскоростных каналов передачи информации, предоставляемых подключаемым абонентским системам для кратковременного пользования (передача возможна по кабелям связи).
Глобальные вычислительные сети (ГВС) - это коммуникационная система, которая поддерживает на значительном расстоянии друг от друга (города, страны) множество высокоскоростных каналов передачи информации, предоставляемых подключаемым абонентским системам для пользования (передача возможна по телефонным линиям).
Корпоративные вычислительные сети (КВС) - это коммуникационная система, которая поддерживает в пределах корпорации один или несколько высокоскоростных каналов передачи информации, предоставляемых подключаемым абонентским системам для кратковременного пользования (передача возможна по кабелям связи).
Территориальная(ТВС)-областное обьединение сетей.
Интернет
Интернет - это объединения почти 50000 различных локальных сетей, каждая такая локальная сеть называется узлом или сайтом. Юридическое лицо, которое обеспечивает работу, называется провайдером. Сайт обычно состоит из нескольких компов – серверов, в каждом из которых хранится инфо определенного типа и в определенном формате. Каждый сайт и сервер на сайте имеют уникальные имена, посредством этих имен они выступают в глобальной сети Интернет.
Электронная почта e-mail, где каждому абоненту назначается определенный электронный адрес. С помощью электронной почты можно получать и передавать текстовые и двоичные сообщения. Посланная инфо хранится на специальном сервере в электронном ящике. Электронные сообщения можно хранить на своем компе, пересылать, печатать.
Доступ к информационным ресурсам (системам). В Интернет существует несколько видов инф. Систем, которые отличаются характером информации, способом ее предоставления, методами обработки и программным обеспечением. Для каждой информационной системы существуют свои средства поиска инфо по Сети. В Интернет имеются следующие информационные системы:
World Wide Web (WWW) – это Всемирная информационная паутина, являющаяся самой популярной. Инфо состоит из мультимедийных страниц (документов), допускающие широкие возможности оформления. Эти страницы могут содержать графику, звук, анимацию.
Gopher-система является предшественником WWW, имеет иерархическую структуру; документы содержат только текст.
FTP-система (File Transfer Programme) служит для пересылки файлов любого вида. Файлы становятся доступными только после копирования на свой комп.
Информационные потребности
Каждый человек, каждая фирма, каждое предприятие нуждается в информации. Кому-то нужен один объем и один вид информации – кому-то необходимо получать гигантские потоки информации в единицу времени. Рассмотрим примеры. Студенту нужно сделать реферат, что нужно ему для этого? Информация. Фирме нужно просмотреть рынок своей продукции и покупателей, которые ее приобретают. И для этого опять нужна информация. Мы используем различные методы получении информации, и все больше и больше эту область занимают информационные технологии.
Объектно-ориентированное программирование
Объектно-ориентированное программирование представляет собой
метод программирования, который весьма близко напоминает наше по-
ведение. Оно является естественной эволюцией более ранних новов-
ведений в разработке языков программирования. Объектно-ориентиро-
ванное программирование является более структурным, чем все пре-
дыдущие разработки, касающиеся структурного программирования. Оно
также является более модульным и более абстрактным, чем предыду-
щие попытки абстрагирования данных и переноса деталей программи-
рования на внутренний уровень. Объектно-ориентированный язык
программирования характеризуется тремя основными свойствами:
1. Инкапсуляция. Комбинирование записей с процедурами и
функциями, манипулирующими полями этих записей, формирует
новый тип данных - объект.
2. Наследование. Определение объекта и его дальнейшее ис-
пользование для построения иерархии порожденных объектов
с возможностью для каждого порожденного объекта, относя-
щегося к иерархии, доступа к коду и данным всех порождаю-
щих объектов.
3. Полиморфизм. Присваивание действию одного имени, которое
затем совместно используется вниз и вверх по иерархии
объектов, причем каждый объект иерархии выполняет это
действие способом, именно ему подходящим.
Языковые расширения Borland Pascal предоставляют вам все
средства объектно-ориентированного программирования: большую
структурированность и модульность, большую абстрактность и встро-
енную непосредственно в язык возможность повторного использова-
ния. Все эти характеристики соответствуют коду, который является
более структурированным, более гибким и более легким для обслужи-
вания.
Объектно-ориентированное программирование порой требует от
вас оставить в стороне характерные представления о программирова-
нии, которые долгие годы рассматривались, как стандартные. Однако
после того, как это сделано, объектно-ориентированное программи-
рование становится простым, наглядным и превосходным средством
разрешения многих проблем, которые доставляют неприятности тради-
ционному программному обеспечению.
Дадим хороший совет тому, кто уже имел дело с объектно-ори-
ентированным программированием на других языках. Оставьте в сто-
роне ваши прежние впечатления об объектно-ориентированном прог-
раммировании и изучайте объектно-ориентированные характеристики
Borland Pascal в их собственных терминах. Объектно-ориентирован-
ное программирование не является единственным путем, оно предс-
тавляет собой континуум идей. По своей объектной философии
Borland Pascal больше напоминает С++, чем Smalltalk. Smalltalk
является интерпретатором, тогда как Borland Pascal с самого нача-
ла был чистым компилятором реального кода. Компилятор реального
кода выполняет работу иначе (и значительно быстрее), чем интерп-
ретатор. Borland Pascal был сконструирован, как инструмент разра-
ботки продуктов, а не как инструмент исследования.
Для тех, кто не имеет об этом ни малейшего понятия, мы не
будем подробно объяснять, что такое объектно-ориентированное
программирование. В этот вопрос и так уже внесено достаточно пу-
таницы. Поэтому забудьте о том, что люди говорили вам об объектно
-ориентированное программировании. Наилучший способ (и, фактичес-
ки, единственный) изучить что-либо полезное об объектно-ориенти-
рованное программировании - это сделать то, что вы уже почти сде-
лали: сесть и попытаться узнать все самостоятельно.
Этапы разработки программ
Выражение "написать программу" отражает только один из этапов создания компьютерной программы, когда разработчик программы (программист) действительно пишет команды (инструкции) на бумаге или при помощи текстового редактора.
Программирование — это процесс создания (разработки) программы, который может быть представлен последовательностью следующих шагов:
1. Спецификация (определение, формулирование требований к программе).
2. Разработка алгоритма.
3. Кодирование (запись алгоритма на языке программирования).
4. Отладка.
5. Тестирование.
6. Создание справочной системы.
7. Создание установочного диска (CD-ROM).
Потребители информации
Потребителями информации являемся все мы, люди, а также фирмы, компании, предприятия, системы искусственного интеллекта (роботы и др.). Ежедневно в мире происходят миллионы событий, и для каждого информационного потребителя важна своя информация. Рассмотрим примеры. Студенту нужно сделать реферат, что нужно ему для этого? Информация. Фирме нужно просмотреть рынок своей продукции и покупателей, которые ее приобретают. И для этого опять нужна информация. Мы используем различные методы получении информации, и все больше и больше эту область занимают информационные технологии. Мы создаем роботов, которых сами же и обучаем, мы создаем системы, которые опять сами же обучаем (экспертные)
Информационное обслуживание
В современном мире всё чаще используется модель аутсорсинга. По-русски outsourcing звучит как "заимствование ресурсов извне". Другими словами, аутсорсинг – это выполнение сторонней организацией определенных задач или некоторых бизнес-процессов, обычно не являющихся профильным для бизнеса компании, но, тем не менее, необходимых для полноценного функционирования бизнеса. ИТ Аутсорсинг (IT outsourcing) - вид услуг, подразумевающий передачу Заказчиком своих текущих функций по поддержке ИТ систем в специализированную ИТ компанию, при котором исполнитель гарантирует выполнение обозначенных в договоре функций в соответствии с утвержденным уровнем сервиса. Под понятие ИТ аутсорсинга подпадают работы (как одноразовые, так и долгосрочные) в области использования информационных технологий: решение административных функций, обслуживание компьютерного сетевого оборудования, консультации в этой области и другое.
Плюсы работы по договору аутсорсинга:
- Аутсорсинг предоставляет возможность сфокусировать усилия на процессах, являющихся основными для компании, т.е. на тех, которые непосредственно приносят прибыль;
- При использовании модели аутсорсинга нет необходимости увеличивать штат компании за счет непрофильных для бизнеса специалистов;
- Нет затрат на поиск, отбор и интеграцию новых специалистов. Любой новый сотрудник требует на адаптацию от 3 до 6 месяцев, иногда более, для полного понимания специфики работы;
- При применении ИТ аутсорсинга происходит снижение косвенных затрат;
- Нет необходимости дублирования ключевых специалистов (например, для небольшой компании достаточно одного системного администратора, а функционирование системы критически важно для бизнеса, в этом случае возникает необходимость замены на случай болезни, отпуска и др.);
- Нет затрат на обучение технических специалистов.
Так же в компаниях существуют собственные IT специалисты, способные разрабатывать и поддерживать внутренние информационные системы.
Информационные системы и информационные технологии
Понятие информационной системы
Под системой понимают любой объект, который одновременно рассматривается
и как единое целое, и как объединенная в интересах достижения поставленных целей
совокупность разнородных элементов. Системы значительно отличаются между собой
как по составу, так и по главным целям.
В информатике понятие "система" широко распространено и имеет множество
смысловых значений. Чаще всего оно используется применительно к набору техниче-
ских средств и программ. Системой может называться аппаратная часть компьютера.
Системой может также считаться множество программ для решения прикладных задач,
дополненных процедурами ведения документации и управления расчетами.
Добавление к понятию "система" слова "информационная" отражает цель ее
создания и функционирования. Информационные системы обеспечивают сбор,
хранение, обработку, поиск, выдачу информации, необходимой в процессе при-
нятия решений задач из любой области. Они помогают анализировать проблемы
и создавать новые продукты.
Современное понимание информационной системы предполагает использо-
вание в качестве основного технического средства переработки информации
персонального компьютера. В крупных организациях наряду с персональным
компьютером в состав технической базы информационной системы может вхо-
дить мэйнфрейм или суперЭВМ. Кроме того, техническое воплощение инфор-
мационной системы само по себе ничего не будет значить, если не учтена роль
человека, для которого предназначена производимая информация и без которого
невозможно ее получение и представление.
Необходимо понимать разницу между компьютерами и информационны-
ми системами. Компьютеры, оснащенные специализированными программными
средствами, являются технической базой и инструментом для информационных
систем. Информационная система немыслима без персонала, взаимодействую-
щего с компьютерами и телекоммуникациями.
Процессы, обеспечивающие работу информационной системы любого назначе-
ния, условно можно представить в виде схемы (рис. 1), состоящей из блоков:
ввод информации из внешних или внутренних источников;
обработка входной информации и представление ее в удобном виде;
вывод информации для представления потребителям или передачи в другую
систему;
обратная связь - это информация, переработанная людьми данной организа-
ции для коррекции входной информации.
Информационная система определяется следующими свойствами:
любая информационная система может быть подвергнута анализу, построена
и управляема на основе общих принципов построения систем;
информационная система является динамичной и развивающейся;
при построении информационной системы необходимо использовать систем-
ный подход;
выходной продукцией информационной системы является информация, на
основе которой принимаются решения;
информационную систему следует воспринимать как человеко-
компьютерную систему обработки информации.
Идеи и методы информатики
За время становления информатики в ней выработан ряд специфических идей и методов, которые не были известны библиотеке- и библиографоведению или какой-либо другой смежной науке или научной дисциплине. Важнейшими из этих идей и методов являются следующие:
координатное индексирование документов и других объектов соответствующими характеристиками – ключевыми словами и дескрипторами;
использование в качестве дескрипторов классов условно 'эквивалентных ключевых слов;
инвертированная организация поисковых массивов;
использование ключевых слов, выбираемых из заглавий, рефератов или текстов документов, для их координатного индексирования;
использование тезауруса как средства представления знаний, полезного для информационного поиска, автоматического перевода текстов и других информационных процессов;
избирательное распространение информации о релевантных документах;
интерактивный (диалоговый) поиск документов и информации;
ранжирование документов, выдаваемых при поиске, по степени их релевантности;
кластерный и другие методы автоматической классификации документов;
использование библиографических ссылок для информационного поиска научных документов и решения наукометрических задач путем создания специальных указателей и баз данных;
методы изучения явлений роста, рассеяния (С. Бредфорд) и старения публикаций, а также определения их информационной ценности.
Далеко не все специалисты по информатике понимают, что информационно-поисковый тезаурус – это не только двуязычный словарь, но и специализированный справочник, в котором приводится логическая информация, необходимая для адекватного перевода с естественного языка на информационно-поисковый. Это непонимание проявляется в том, что информационно-поисковыми тезаурусами называют любые упорядоченные множества терминов – таблицы десятичной классификации, рубрикаторы информационных изданий, словники предметных указателей. До сих пор не разработана научная методика построения и использования таких тезаурусов, хотя от их качества в значительной мере зависят результаты информационного поиска.
Построение теоретических основ любой науки и научной дисциплины невозможно без разработки системы ее основных понятий и специальной терминологии. В информатике это было сделано уже на начальных этапах ее формирования. Информатики сознавали необходимость изучения структуры, содержания и динамики потоков научной и другой семантической информации. Для этого были разработаны и апробированы соответствующие методы, которые могут быть использованы не только в сфере научной коммуникации, но и в других сферах общественной жизни. Было продолжено и углублено начатое еще в библиографоведении изучение рассеяния публикаций определенной отрасли знаний, предмета или проблемы по периодическим изданиям, которое известно как «закон рассеяния Бредфорда».
Изучение специфики информационных потребностей ученых и специалистов, изыскание наиболее эффективных способов их удовлетворения привели к выработке понятий «релевантности» и «пертинентности». Эти понятия легли в основу теории информационного поиска, которая несомненно является крупным вкладом информатики в современную науку. В рамках этой теории были сформулированы понятия «информационно-поискового языка», «поискового образа документа», «поискового предписания» и «критерия выдачи». Были также разработаны способы оценки эффективности информационного поиска, без чего было бы невозможно сравнение разных информационно-поисковых систем с целью их совершенствования. Особенно значительным достижением информатики является разработка метода координатного индексирования документов и других объектов поиска, а также дескрипторных информационно-поисковых языков и тезаурусов.
Идеи и методы информатики используются во всех сферах интеллектуальной деятельности – везде, где сообщения облекаются в форму документа и становятся объектом аналитико-синтетической переработки, долговременного хранения и достаточно частого поиска и использования. В качестве таких сообщений могут выступать не только научные документы, но и газетные статьи, фотоснимки, опубликованные тексты радиопередач, архивные материалы, банковские счета, бухгалтерские документы и т.п.
При создании автоматизированных информационных систем, которые охватывают документы, не относящиеся к сфере науки и техники, как правило, не требуется применения каких-либо иных методов и средств, чем те, которые разработаны информатикой для научных документов. Более того, для этого обычно оказываются достаточными наиболее простые методы. Сказанное в полной мере относится и к сфере материально-технического снабжения, когда объектами классификации (индексирования), хранения, поиска и выдачи являются не документы, а материальные объекты – промышленные изделия, запасные части и т.п.
Информатика все больше ориентируется на использование компьютеров, микрофотографии и средств массовой коммуникации. В последние десятилетия для поиска документальной и фактографической информации, а также для дистанционной передачи копий научных документов все шире используются каналы и средства телеграфной, телефонной и телевизионной связи. В последние годы особенно интенсивно развиваются компьютерные сети. Ясно, что использование компьютеров и других новейших технических средств, а также их быстрое совершенствование оказывают сильное влияние на развитие определенных методов информатики.
Следует, однако, понимать, что компьютеры и другая современная информационная техника служат лишь инструментами для решения задач информатики. Их использование для решения задач аналитико-синтетической переработки информации базируется в основном, если не исключительно, на идеях и методах, разработанных в рамках информатики. Между тем иногда складывается неверное впечатление, что решающим фактором в «индустрии информации» являются применяемые в ней технические средства, а идеи и методы, на основе которых производится переработка информации, играют второстепенную роль. Хорошо известно, что компьютеры работают по определенным программам, разработанным на основе идей и представлений, лежащих за пределами программирования. Рассмотрение конкретных примеров решения информационных задач при помощи средств автоматизации (например, автоматизированных информационных систем в медицине) показывает, что все они основаны на идеях и методах информатики.
Особенно широкое распространение получил метод координатного индексирования ключевыми словами, который ныне используется в самых разнообразных областях. Изолированные ключевые, стержневые слова (нем. Stichwort), выбираемые из заглавий книг, использовались для составления каталогов немецких библиотек еще в XIX в. Сущность метода информатики – в установлении координатной связи между ключевыми словами, выбранными для индексирования документа, в их соподчинении, логическом умножении. С практической точки зрения этот метод позволил автоматизировать индексирование документов, а также их поиск по произвольным сочетаниям признаков (с использованием булевой и «пороговой» логик)— особенно в режиме диалога. Не в меньшей степени этот метод ценен и теоретически, поскольку сделал объектом соответствующих исследований семантическую и знаковую структуру текстов на естественных языках, без чего невозможна автоматическая переработка таких текстов в системах искусственного интеллекта. Нельзя забывать и о том, что этот метод был разработан и применялся еще до появления первых компьютеров.
Примером того, насколько важную роль в современных автоматизированных информационных системах играют идеи и методы информатики, может служить японский проект создания ЭВМ пятого поколения. Главным принципом проекта являлось создание сверхбыстродействующих компьютеров, ориентированных на использование «баз знаний», т.е. накопленных и особым образом организованных декларативных и процедурных знаний о соответствующих фрагментах внешнего мира. Но такая задача в информатике начала обсуждаться несколько десятилетий назад. Концептуальным аналогом «базы знаний» можно считать тезаурус как семантическую сетевую структуру. Тезаурус, используемый при поиске документов, является проблемно-ориентированным вариантом «базы знаний».
Мировой информационный рынок
Одной из форм предоставления информационных услуг потребителю является обеспечение его доступа к профессиональным базам данных, научно-технической, деловой, правовой и другой информации. Развитие международного экономического сотрудничества определило потребность в создании мировых информационных систем. Рассмотрим тенденции развития баз данных и их объема за последнее двадцатилетие.
Содержание баз данных отражает потребности пользователей. Если первоначально потребители запрашивали научно-техническую информацию, то в настоящий момент их основной интерес направлен на информацию, касающуюся бизнеса, торговли, промышленности, а также патентной и правовой информации.
По форме информационные ресурсы могут быть разделены на числовые (фактографическая информация) и текстовые. Объемы текстовых баз данных значительно превышают объемы числовых, и этот разрыв со временем увеличивается.
Рассмотрим распределение мировых информационных ресурсов по мировым регионам.
Рассмотрим возможности удовлетворения потребностей пользователей, занимающихся предпринимательской деятельностью на примере ведущих мировых информационных корпораций.
Информационная корпорация «Dun & Bradstreet» - крупнейшая в мире американская многопрофильная информационная корпорация, возникшая более 150 лет назад. Обеспечивает клиентов деловой информацией на всех этапах принятия решений. В корпорации занято свыше 60 тыс. сотрудников, работающих в разветвленной сети ее региональных представительств по всему миру. Предоставляет своим клиентам следующие информационные продукты и услуги:
информация, освещающая финансовое состояние и кредитоспособность около 70 млн. компаний во всех странах мира;
маркетинговые исследования;
справочники «страна-фирма-продукт»;
регулярные обзоры таможенного, налогового и инвестиционного климата в 180 странах мира;
справочники-рейтинги долговых обязательств;
международная программа подготовки специалистов в области финансов, маркетинга и информационного обеспечения.
Основными видами продукции корпорации являются аналитические справочники и деловая справочная литература.
Бизнес-справка содержит необходимые сведения о финансовом положении потенциальных партнеров, а также сведения о степени коммерческого риска при ведении дел с ними. Кредитно-аналитическая справка – аналитический документ, характеризующий финансовые показатели фирмы за период до трех лет в сравнении с данными по отрасли, к которой относится эта фирма. Платежно-аналитическая справка – характеризует практику и сроки исполнения платежей интересующих вас партнеров.
Деловая справочная литература. Компания «Dun & Bradstreet» выпускает ежегодные справочники для самостоятельного поиска партнеров в различных странах мира. Также выпускает ежемесячный бюллетень «Международный обзор коммерческих рисков и платежей», который содержит сжатую информацию о текущей экономической ситуации в различных странах мира.
Цены на услуги, предоставляемые «Dun & Bradstreet»:
разовая справка по компании – 200$;
стоимость абонентского обслуживания – зависит от количества предоставляемых справок:
Информационная корпорация «Dialog» основана в 1972 году, является одной из крупнейших универсальных ИС в мире с числом клиентов свыше 20 тыс. и объемом продаж более 280 млн. $. Система Dialog включает в себя около 250 баз данных объемом свыше 12 Терабайт распределенных по следующим тематикам: бизнес, общая информация, правительственные и законодательные акты, новости и текущие события, конференции, наука, социальная сфера, статьи и т.д.
В группе «бизнес» содержится информация о компаниях, организациях, патентах, торговых марках, данные финансового промышленного анализа, деловые новости. Корпорация Dialog предлагает своим пользователям несколько типов цен:
плата за время подключения к системе в режиме on-line (за минуту от 25 центов до 6 долларов, за час от 10 до 250 долларов);
плата за печать записей из базы данных системы в режиме off-line (от 25 центов до 100 долларов за каждую полную запись).
Каждый пользователь должен уведомить корпорацию о том типе, который он выбрал. В настоящее время в состав корпорации входит компания «Data-Star». Она считается европейским лидером среди служб on-line доступа к БД. Данная фирма основана в 1981 году в Швейцарии.
Наиболее важные разделы:
деловые новости;
финансовая информация;
маркетинговые исследования;
статистика торговли;
экономический анализ;
здоровье и фармацевтика;
химия и нефтехимия;
экологическая индустрия;
биомедицина;
наука;
биотехнология и технология;
новости.
Также в состав корпорации входит компания «TredStat», публикующая информацию о ценах в различных странах мира по 60 тыс. видов товаров.
Информационная корпорация «Questel-Orbit» включает в себя две подсистемы: Questel (Франция) и Orbit (США). Корпорация является одним из лидеров на рынке информации, характеризующей интеллектуальную собственность (патенты, товарные знаки и т.д.). Она существует более 20 лет и обеспечивает белее 35 тыс. потребителей по всему миру.
В системе размещены 267 баз данных, которые разбиты по предметным группам:
бизнес;
химия;
энергетика и наука о земле;
инжиниринг;
здоровье, здравоохранение и окружающая среда;
гуманитарные и социальные науки;
материаловедение;
медицина;
новости;
патенты;
наука и технология;
торговые марки.
В этих базах данных по компаниям содержатся сведения о европейских компаниях и 36 тыс. компаниях США, занимающихся разработками новых технологий или производством высокотехнологичных продуктов в области компьютерного производства и программного обеспечения. В группе баз данных «патенты» размещена международная информация по патентам, патентная информация по отдельным странам, патентная информация по отраслям и юридическая информация по патентам.
Информационное агентство «Lexis-Nexis». On-line система Lexis создана для американских юристов и содержала правовую информацию. В ответ на положительную реакцию общественности в 1979 году появилась система Nexis, представляющая собой постоянно обновляющуюся электронную библиотеку газет, журналов и других информационных изданий. Корпорация Lexis-Nexis крупнейшая в мире полнотекстовая онлайновая ИС, предоставляющая пользователям юридическую, политическую, коммерческую и др. информацию и содержит более 33 тыс. информационных источников, в том числе 19 тыс. полнотекстовых, включая такие как New-York Times, Washington Post, News Week, Financial Times и т.д.
Система обслуживает около 2 млн. клиентов, в базах системы содержится более 3 млрд. документов объемом более 27 Терабайт. Ежедневный поток поступающей информации составляет 2 млн. документов.
Оплата работы в режиме on-line и получение информации производятся по трем схемам. Это дает подписчикам возможность подобрать вариант оплаты более предпочтительный для их бюджета и объема работ. Постоянно обновляющаяся система баз данных включает в себя:
около 800 газет и журналов и других источников информации, содержащих большинство европейских и мировых новостей;
финансовые документы, отчеты общественных и частных компаний со всего мира;
аналитические отчеты крупных букмекерских фирм со всего мира;
юридические и законодательные документы Франции, Великобритании, Северной Ирландии, Канады, Новой Зеландии, Китая, США и СНГ.
полный текст (1,5 млн. патентных документов) патентного бюро США с 1975 года;
аналитические отчеты по странам и регионам, составленные частными и государственными организациями.
Информационные ресурсы сети Internet
Классификация источников информации в Интернете может производиться по разным основаниям:
Веб-страницы – наиболее распространенный и используемый из информационных ресурсов. Представляет собой страницы, связанные гипертекстом. Страницы, наряду с текстом, могут содержать графическую, видео и звуковую информацию;
Файловые серверы – представляют собой реализацию в Интернете традиционного способа предоставления информации;
Телеконференции – являются важным источником информации и разбиваются на группы (рубрики) по различным тематикам;
Базы данных – в них часто содержится кроме текстовой информации также другие виды информации.
Информационные ресурсы также могут быть разделены по языковому признаку. В Интернете представлены практически все основные языки, но превалирующим является английский. Многие сайты публикуются на нескольких языках.
Имеет место классификация по территориальному признаку, ряд сайтов представляет информацию для потребителей определенного региона, хотя доступ к ней возможен с любой точки мира.
Наиболее важным аспектом классификации информационных ресурсов сети является содержание информации. Деловая информация, необходимая предпринимательской деятельности, по этому критерию может быть разделена на следующие группы:
Сведения о фирмах и организациях – различают три типа серверов данной группы:
серверы присутствия в Интернете делятся на рекламные и информирующие. Рекламные обычно содержат 1 – 2 страницы, когда информирующие содержат более подробную информацию о фирме, о производимой ей продукции и услугах;
информационные серверы – их ведут информационно-аналитические агентства, в том числе государственные, чья деятельность связана с предоставлением различного рода информации потребителям;
интерактивные магазины – обеспечивают продажу товара посредством Интернета, при этом могут быть реализованы в электронном виде следующие функции:
предоставление клиенту необходимой информации о товаре и услуге;
оформление заказа;
оплата заказа (при использовании онлайновых платежных систем);
отправка заказа, если товаром является информация.
Сведения о состоянии мировой экономики и экономики отдельных стран – данная информация представлена в профессиональных базах крупнейших информационно-аналитических агентств мира. Срверы этих агентств входят в состав информационных ресурсов Интернета. Информация о состоянии национальной экономики обычно размещается на серверах государственных структур, отвечающих за государственную поддержку экономики, также государственных статистических органов и различных экономических институтов;
Сведения о состоянии отраслевых рынков – анализ отраслевых рынков осуществляют специализированные маркетинговые и консалтинговые агентства, а также маркетинговые службы различных фирм и организаций. Результаты этих исследований можно получить:
из профессиональных баз крупнейших информационных агентств;
в самих агентствах, чьи сайты представлены в Интернете;
в многопрофильных и отраслевых журналах, регулярно публикующих обзоры рынков (Эксперт, Профиль и т.д.).
Деловые новости – подавляющее большинство мировых информационных агентств предоставляют потребителям доступ к деловым новостям, из которых можно выделить:
зарубежные (Lexis-Nexis, Dialog и т.д.);
отечественные (Интегрум-Техно, предоставляющий доступ к материалам 250 центральных и крупнейших региональных газет, РИА-Новости – государственное информационно-аналитическое агентство РФ, ИТАР-ТАСС – государственное информационное агентство РФ, ИНТЕР-ФАКС – агентство, входящее в состав международной информационной группы INTER-FAX INFORMATION SERVICE).
В Интернете также имеются электронные версии различных изданий, которые могут быть как платными, так и бесплатными (газеты Коммерсант, Аргументы и Факты и т.д.).
Cправочная информация – списки веб-сайтов компаний, отобранных по определенному принципу, а также телефонно-адресный справочник (желтые страницы) с возможностью поиска информации по названию фирмы и виду деятельности. Также в Интернете представлены телефонные справочники городов России, стран СНГ и Балтии. Имеется информация о расписании движения поездов, авиарейсов, погоде и т.п.
Информационный потенциал страны
Информационный портал страны очень высок, открылись и еще строятся ряд технопарков, всего их должно к 2010 году быть около 7. Два из них уже функционируют на полную мощность. Л.Д. Рейман (министр связи) в одном из последних выступлений говорил, о том, что информационная индустрия России развивается и будет развиваться, тем самым стали показатели – «интернет и телефон в каждый дом», «интернет во все военные части», а также информационные проекты таких компаний как «Почта России» (киберпочта, киберденьги) и компаний подобных компании «Синтерра» (безпроводные сети).
Информатизация общества – прогнозы ученых
Информатизация не стоит на месте. Налоговые требуют уже не бумажную отчетность, а электронную. Люди все чаще пользуются электронной валютой, банки перешли на кредитные карты. Все идет к тому, что скоро все будут делать и решать за нас компьютерные системы. Уже свершилась революция в Компьютерной индустрии, появились диски объемом 200 Гигабайт, четырех ядерные процессоры и многое другое, и дальше все будет идти к минимизации и увеличению функциональности каждого объекта Информационного мира.
Информатика и другие научные дисциплины
Очевидно, что через профильные курсы информатики осуществляется проникновение информатики как науки в различные предметные области. Такой процесс внедрения информатики в различные сферы деятельности человека и есть отражение информатизации общества. В свою очередь проникновение информатики в другие дисциплины возможно только путем установления межпредметных связей между информатикой и другими научными дисциплинами. Таким образом, содержание любого профильного курса информатики должно включать прочные межпредметные связи с дисциплинами специализации. Уже трудно представить себе без информатики такие науки как биология, химия, везде, где можно смоделировать какой-либо процесс. Очень дорого и порой опасно проводить всевозможные эксперименты, опыты, проверки не смоделировав их вначале на ПК. Для этого были разработаны специальные программы. Анализ взрывной мощности ядерных и водородных бомб, пилотирование самолета и многое другое.
Библиотечные информационные сети
Это некая система, объединяющая в себя организации, предприятия, учреждения различной ведомственной подчиненности и др. с целью формирования единого информационно-библиотечного пространства, для оперативного доступа к информации.
Формы представления информации
Понятие информации является основополагающим понятием информатики. Любая деятельность человека представляет собой процесс сбора и переработки информации, принятия на ее основе решении и их выполнения. С появлением современных средств вычислительной техники информация стала выступать в качестве одного из важнейших ресурсов научно-технического прогресса.
Информация содержится в человеческой речи, текстах книг, журналов и газет, сообщениях радио и телевидения, показаниях приборов и т. д. Человек воспринимает информацию с помощью органов чувств, хранит и перерабатывает ее с помощью мозга и центральной нервной системы. Передаваемая информация обычно касается каких-то предметов или нас самих и связана с событиями, происходящими в окружающем нас мире. В рамках науки информация является первичным и неопределяемым понятием. Оно предполагает наличие материального носителя информации, источника информации, передатчика информации, приемника и канала связи между источником и приемником. Понятие информации используется во всех сферах: науке, технике, культуре, социологии и повседневной жизни. Конкретное толкование элементов, связанных с понятием информации, зависит от метода конкретной науки, цели исследования или просто от наших представлений. Термин «информация» происходит от латинского informatio — разъяснение, изложение, осведомленность. Энциклопедический словарь (М.: Сов. энциклопедия, 1990) определяет информацию в исторической эволюции: первоначально — сведения, передаваемые людьми устным, письменным или другим способом (с помощью условных сигналов, технических средств и т. д.); с середины XX века — общенаучное понятие, включающее обмен сведениями между людьми, человеком и автоматом, обмен сигналами в животном и растительном мире (передача признаков от клетки к клетке, от организма к организму). Более узкое определение дается в технике, где это понятие включает в себя все сведения, являющиеся объектом хранения, передачи и преобразования. Наиболее общее определение имеет место в философии, где под информацией понимается отражение реального мира. Информацию как философскую категорию рассматривают как один из атрибутов материи, отражающий ее структуру. В эволюционном ряду вещество -> энергия -> информация каждое последующее проявление материи отличается от предыдущего тем, что людям было труднее его распознать, выделить и использовать в чистом виде. Именно сложность выделения различных проявлений материи обусловила, наверное, указанную последовательность познания природы человечеством. С понятием информации связаны такие понятия, как сигнал, сообщение и данные. Сигнал (от латинского signum — знак) представляет собой любой процесс, несущий информацию. Сообщение — это информация, представленная в определенной форме и предназначенная для передачи. Данные — это информация, представленная в формализованном виде и предназначенная для обработки ее техническими средствами, например, ЭВМ. Различают две формы представления информации — непрерывную и дискретную. Поскольку носителями информации являются сигналы, то в качестве последних могут использоваться физические процессы различной природы. Например, процесс протекания электрического тока в цепи, процесс механического перемещения тела, процесс распространения света и т. д. Информация представляется (отражается) значением одного или нескольких параметров физического процесса (сигнала), либо комбинацией нескольких параметров. Сигнал называется непрерывным, если его параметр в заданных пределах может принимать любые промежуточные значения. Сигнал называется дискретным, если его параметр в заданных пределах может принимать отдельные фиксированные значения. Следует различать непрерывность или дискретность сигнала по уровню и во времени. На рис. 1.1 в виде графиков изображены: а) непрерывный по уровню и во времени сигнал Хнн; б) дискретный по уровню и непрерывный во времени сигнал Хдн; в) непрерывный по уровню и дискретный во времени сигнал Хнд; г) дискретный по уровню и во времени сигнал Хдд.
Рис. 1.1. Виды информационных процессов
Наконец, все многообразие окружающей нас информации можно сгруппировать по различным признакам, т. е. классифицировать по видам. Например, в зависимости от области возникновения информацию, отражающую процессы и явления неодушевленной природы, называют элементарной, процессы животного и растительного мира — биологической, человеческого общества — социальной. По способу передачи и восприятия различают следующие виды информации: визуальную — передаваемую видимыми образами и символами, аудиальную — звуками, тактильную — ощущениями, органолептическую — запахами и вкусом, машинную — выдаваемую и воспринимаемую средствами вычислительной техники, и т. д.
Понятие количества информации
Количеством информации называют числовую характеристику сигнала, отражающую ту степень неопределенности (неполноту знаний), которая исчезает после получения сообщения в виде данного сигнала. Эту меру неопределенности в теории информации называют энтропией. Если в результате получения сообщения достигается полная ясность в каком-то вопросе, говорят, что была получена полная или исчерпывающая информация и необходимости в получении дополнительной информации нет. И, наоборот, если после получения сообщения неопределенность осталась прежней, значит, информации получено не было (нулевая информация). Приведенные рассуждения показывают, что между понятиями информация, неопределенность и возможность выбора существует тесная связь. Так, любая неопределенность предполагает возможность выбора, а любая информация, уменьшая неопределенность, уменьшает и возможность выбора. При полной информации выбора нет. Частичная информация уменьшает число вариантов выбора, сокращая тем самым неопределенность. Пример. Человек бросает монету и наблюдает, какой стороной она упадет. Обе стороны монеты равноправны, поэтому одинаково вероятно, что выпадет одна или другая сторона. Такой ситуации приписывается начальная неопределенность, характеризуемая двумя возможностями. После того, как монета упадет, достигается полная ясность и неопределенность исчезает (становится равной нулю). Приведенный пример относится к группе событий, применительно к которым может быть поставлен вопрос типа «да-нет». Количество информации, которое можно получить при ответе на вопрос типа «да-нет», называется битом (англ. bit — сокращенное от binary digit — двоичная единица). Бит — минимальная единица количества информации, ибо получить информацию меньшую, чем 1 бит, невозможно. При получении информации в 1 бит неопределенность уменьшается в 2 раза. Таким образом, каждое бросание монеты дает нам информацию в 1 бит. В качестве других моделей получения такого же количества информации могут выступать электрическая лампочка, двухпозиционный выключатель, магнитный сердечник, диод и т. п. Включенное состояние этих объектов обычно обозначают цифрой 1, а выключенное — цифрой 0. Рассмотрим систему из двух электрических лампочек, которые независимо друг от друга могут быть включены или выключены. Для такой системы возможны следующие состояния: Лампа А 0 0 1 1 Лампа В 0 1 0 1 Чтобы получить полную информацию о состоянии системы, необходимо задать два вопроса типа «да-нет» — по лампочке А и лампочке В соответственно. В этом случае количество информации, содержащейся в данной системе, определяется уже в 2 бита, а число возможных состояний системы — 4. Если взять три лампочки, то необходимо задать уже три вопроса и получить 3 бита информации. Количество состояний такой системы равно 8 и т. д. Связь между количеством информации и числом состояний системы устанавливается формулой Хартли:
i=log2N,
где i — количество информации в битах; N —. число возможных состояний. Ту же формулу можно представить иначе:
N =2i.
Группа из 8 битов информации называется байтом. Если бит — минимальная единица информации, то байт ее основная единица. Существуют производные единицы информации: килобайт (кбайт, кб), мегабайт (Мбайт, Мб) и гигабайт (Гбайт, Гб). 1 кб =1024 байта - 210 (1024) байтов. 1 Мб = 1024 кбайта = 220(1024 x 1024) байтов. 1 Гб = 1024 Мбайта - 230 (1024х1024 х 1024)байтов. Эти единицы чаще всего используют для указания объема памяти ЭВМ.
Преобразование сообщений
Поскольку имеются два типа сообщений, между ними, очевидно, возможны четыре варианта преобразований:
Рис.1.
Варианты преобразований
Осуществимы и применяются на практике все четыре вида преобразований. Рассмотрим примеры устройств и ситуаций, связанных с такими преобразованиями, и одновременно попробуем отследить, что при этом происходит с информацией.
Примерами
устройств, в которых осуществляется
преобразование типа N1N2,
являются микрофон (звук преобразуется
в электрические сигналы); магнитофон и
видеомагнитофон (чередование областей
намагничивания ленты превращается в
электрические сигналы, которые затем
преобразуются в звук и изображение);
телекамера (изображение и звук превращаются
в электрические сигналы); радио- и
телевизионный приемник (радиоволны
преобразуются в электрические сигналы,
а затем в звук и изображение); аналоговая
вычислительная машина (одни электрические
сигналы преобразуются в другие).
Особенностью данного варианта
преобразования является то, что оно
всегда сопровождается частичной потерей
информации. Потери связаны с помехами
(шумами), которые порождает само
информационное техническое устройство
и которые воздействуют извне. Эти помехи
примешиваются к основному сигналу и
искажают его. Поскольку параметр сигнала
может иметь любые значения (из некоторого
интервала), то невозможно отделить
ситуации: был ли сигнал искажен или он
изначально имел такую величину. В ряде
устройств искажение происходит в силу
особенностей преобразования в них
сообщения, например в черно-белом
телевидении теряется цвет изображения;
телефон пропускает звук в более узком
частотном интервале, чем интервал
человеческого голоса; кино- и
видеоизображение оказываются плоскими,
они утратили объемность.
Теперь
обсудим общий подход к преобразованию
типа ND.
С математической точки зрения перевод
сигнала из аналоговой формы в дискретную
означает замену описывающей его
непрерывной функции времени Z(t)
на некотором отрезке [t1,
t2]
конечным множеством (массивом) {Zi,
ti}
(i
изменяется от 0 до n,
где n
– количество точек разбиения временного
интервала). Подобное преобразование
называется дискретизацией непрерывного
сигнала и осуществляется посредством
двух операций: развертки по времени и
квантования по величине сигнала.
Развертка
по времени состоит в том, что наблюдение
за значением величины Z
производится не непрерывно, а лишь в
определенные моменты времени с интервалом
:
Квантование
по величине – это отображение вещественных
значений параметра сигнала в конечное
множество чисел, кратных некоторой
постоянной величине – шагу квантования
(Z).
Совместное выполнение обоих операций эквивалентно нанесению масштабной сетки на график Z(t), как показано на рисунке 2. Далее, в качестве пар значений {Zi, ti} выбираются узлы сетки, расположенные наиболее близко к Z(ti). Полученное таким образом множество узлов оказывается дискретным представлением исходной непрерывной функции. Таким образом, любое сообщение, связанное с ходом Z(t), может быть преобразовано в дискретное, т.е. представлено посредством некоторого алфавита.
Рис.2.
Дискретизация аналогового сигнала за
счет операций развертки по времени и
квантования по величине
При
такой замене довольно очевидно, что чем
меньше n
(больше
t),
тем меньше число узлов, но и точность
замены Z(t)
значениями Zi
будет меньшей. Другими словами, при
дискретизации может происходить потеря
части информации, связанной с особенностями
функции Z(t).
На первый взгляд кажется, что увеличением
количества точек n
можно улучшить соответствие между
получаемым массивом и исходной функцией,
однако полностью избежать потерь
информации все равно не удастся, поскольку
n
– величина конечная. Ответом на эти
сомнения служит так называемая теорема
отсчетов, доказанная в 1933 г. В.А.Котельниковым
(по этой причине ее иногда называют его
именем), значение которой для решения
проблем передачи информации было
осознано лишь в 1948 г. после работ
К.Шеннона. Теорема, которую мы примем
без доказательства, но результаты будем
в дальнейшем использовать, гласит:
Непрерывный сигнал можно полностью отобразить и точно воссоздать по последовательности измерений или отсчетов величины этого сигнала через одинаковые интервалы времени, меньшие или равные половине периода максимальной частоты, имеющейся в сигнале.
Энтропия и информация
Теория информации как самостоятельная научная дисциплина была основана американским ученым К.Шенноном в конце 40-х годов 20-го века.Предложенная им теория основывалась на фундаментальном понятии количественной меры неопределенности – энтропии – и связанного с нею понятия – количества информации.
На основе понятий энтропии и количества информации в теории информации введены важные характеристики сигналов и информационных систем:
Скорость создания информации.
Скорость передачи информации.
Избыточность.
Пропускная способность каналов связи.
Одним из самых замечательных результатов теории информации является доказательство, что при любых помехах и шумах можно обеспечить передачу информации без потерь. Первая теорема Шеннона гласит, что при скорости содания информации меньшей пропускной способности канала можно передавать информацию со сколь угодно малой вероятностью ошибок, несмотря на шумы.
Что же такое энтропия?
Шеннон сформулировал энтропию как меру хаоса в противовес количеству информации как меры упорядоченности структур.
Рассмотрим некоторую сложную систему и проследим ее эволюцию. Пусть эта система представляет собой находящийся в сосуде газ, состоящий из огромного числа беспорядочно движущихся молекул. Мы не знаем точного положения и скорости в каждый момент времени каждой частицы газа, но нам известны макропараметры: давление, объем, температура и состав газа. Фактически мы должны рассчитать число способов, которыми можно осуществить внутренние перестройки в системе, чтобы наблюдатель не заметил изменений макросостояния системы. При этом предполагается неотличимость атомов друг от друга.
Если в системе, состоящей из одного атома, произошло его энергетическое возбуждение, нам это может стать известно по значению температуры. При этом возможно только одно распределение возбуждения в системе равному единице. Энтропия связана с распределением следующим образом: S=k ln W. В нашем случае W=1, а значит система обладает нулевой энтропией.
В системе из ста атомов, распределение возбуждения может быть осуществлено ста способами, т.е. W=100, ln100=4,61. Энтропия системы выросла и стала хаотичной, поскольку мы не знаем, где находится в каждый момент возбужденный атом.
Принято считать, что любая система стремится к состоянию равновесия, т. е. растет энтропия системы. Однако второе начало термодинамики (закон сохранения энтропии и информации) требует компенсировать рост энтропии. Информация и является средством компенсации.
Связь компьютеров по телефонным линиям
Модем - это устройство, которое позволяет обменеваться данными по телефонной линии.
Если компьютеры расположенны слишком далеко и их нельзя соеденить стандартным сетевым кабелем, связь между ними осуществляется с помощью модема. В сетевой среде модемы служат для соеденения отдельных сетей между собой или между ЛВС и остальным миром. Осуществлять связь напрямую через телефонную линию компьютеры не могут, так как обмениваются данными с помощью цифровых электронных импульсов, а по телефонной линии можно передавать только аналоговые сигналы (звуки).
Цифровой сигнал может принимать лишь два значения - 0 или 1. Аналоговый сигнал- это плавная кривая, которая может иметь бесконечное множество значений. Модем на передающей стороне преобразует цифровые сигналы в аналоговые и передаёт их по телефонной линии. Модем на принимающей стороне преобразует приходящие аналоговые сигналы в цифровые для компьютера - получателя. Другими словами передающий модем модулирует цифровой сигнал в аналоговый, а принимающий модем демодулирует аналоговыйсигнал в цифровой.
Аппаратное обеспечение модемов
Модемы имеют два стандартных физических интерфейса:
Последовательный интерфейс передачи данных (RS-232)
Интерфейс с телефонной линией RG-11(четырёхконтактный телефонный разъём)
Существуют внутренние и внешние модемы. Внутренние модемы устанавливаются в слоты расширения на материнской плате подобно другим платам.
Внешний модем представляет собой коробочку, подключаемую к компьютеру с помощью последовательного (RS-232) кабеля. Этот кабель соеденяет последовательный порт компьютера с тем разъёмом модема, который предназначен для связи с компьютером. Для подключения модема к телефонной линии используется кабель с разъёмом RG-11.
Стандарты модемов
Промышленные стандарты существуют практически для каждой области сетевых технологий и модемы не являются исключением. Стандарты обеспечивают взаимодействие модемов от разных производителей. Спецификации, известные как V-серии, включают номер стандарта. Иногда включается так же слово "bis". Оно указывает, что данный стандарт- пересмооьренная версия более раннего стандарта. Если в названии присутствует слово "terbo" это означает, что второй-"bis" стандарт так же был модифицирован.
Производительность модема
Изначально скорость модемов измерялась в битах в секунду или в единицах, называемых "бод".Многии путали их, считая что они обозначают одно и то же. На самом деле бод относится к частоте осцилляций звуковой волны, переносящих биты данных по телефонной линии. В начале 1980-х годов скорость в бодов равнялась скорости передачи модемов. Затем инженеры разработали методы сжатия и кодирования информации. В результате каждая модуляция звука могла переносить больше одного бита информации, следовательно скороость передачи в битах в секунду может быть больше, чем скорость в бодах, поэтому необходимо сначало обратить внимание на скорость в битах в секунду, а затем в бодах. Например модем на скорости 28800бод в действительности может передавать данные со скоростью 115200 бит/c. Cовременные модемы имеют такие индустриальные стандарты сжатия данных как V.42bis/MNP5, и имеют скорость передачи данных 57600 бит/c, а некоторые-76800 бит/c.
Типы модемов
Существуют разные типы модемов, так как существуют разные среды передачи, для которых требуется разные методы передачи. Эти типы можно грубо разделить, взяв за основу критерий синхронизации связи. Связь бывает асинхронная и синхронная. Тип модема будет зависить от среды и от назначения сети.
Асинхронная связь
Асинхронная связь- самая распространённая форма передачи данных. Причина такой популярности заключается в использовании этим методом стандартных телефонных линий. При асинхронной передаче данные передаются последовательным потоком. Каждый символ- буква, число или знак раскладывается в последовательность битов. Каждая такая последовательность отделяется от другой стартовым и стоповым битом. Передающее и принимающее устройства должны согласовывать последовательность стартовых и стоповых битов. Связь этого типа не синхронизируется, передающий компьютер передаёт, а принимающий получает без координации взаимодействия устройств. Затем принимающий компьютер проверяет полученные данные на наличие ошибок и принимает следующий блок информации. 25% трафика уходит на передачу согласующей информации.
Комбинирование стандартов
Для увеличения производительности используют комбинацию протоколов передачи данных и коррекции ошибок. Например при асинхронной передаче хорошие результаты даюёт комбинация: V.32bis- передача V.42-коррекция ошибок V.42bis-cжатие
Cинхронная связь
Синхронная связь основанна на схеме синхронизации, согласованной между двумя устройствами. Её цель- выделить биты из группы при передаче их блоками. Эти блоки называются кадрами. Для установления синхронизации и проверки правильности её работы используются специальные символы. Поскольку биты передаются в синхронном режиме, стартовые и стоповые биты не нужны. Передача завершается в конце одного кадра и начинаются в начале другого. Этот метод более эффективен, чем асинхронная передача. В случае ошибки синхронная схема распознования и коррекции ошибок повторяет передачу кадра.
Синхронные протоколы выполняют следующие действия, не предусмотренные асинхронными протоколами:
Разбивают данные на блоки Добавляют управляющую информацию Проверяет данные на наличие ошибок
Основные протоколы синхронной передачи:
SDLC-протокол синхронного управления каналом HDLC-протокол высококровнего управления каналом BISYNC-протокол двоичной синхронизированной связи
Синхронная связь используется, в основном, на выделенных цифровых линиях, и в домашних условиях, как правило, не применяется.