informatika
.pdfСо стороны клиента для работы с серверами FTP может быть установлено специальное программное обеспечение, хотя в большинстве случаев браузеры WWW обладают встроенными возможностями для работы и по протоколу FTP.
IRC. Служба IRC (Internet Relay Chat) предназначена для прямого общения нескольких человек в режиме реального времени. Иногда службу IRC называют чат-конференцией или про-
сто чатом.
Одна из наиболее популярных клиентских программ для работы с серверами и сетями, поддерживающими сервис IRC – программа mIRC.exe.
ICQ. Эта служба предназначена для поиска сетевого IPадреса человека, подключенного в данный момент к Интернету. Необходимость в подобной услуге связана с тем, что большинство пользователей не имеют постоянного IP-адреса. Для пользования этой службой надо зарегистрироваться на ее центральном сервере (http://www.icq.com) и получить персональный идентификационный номер UIN (Universal Internet Number).
Данный номер нужно сообщить партнерам по контактам.
При каждом подключении к Интернету программа ICQ, установленная на нашем компьютере, определяет текущий IPадрес и сообщает его центральной службе, которая, в свою очередь, оповещает наших партнеров по контактам.
6.4. Вопросы компьютерной безопасности
Компьютерные вирусы. Компьютерный вирус – это программный код, встроенный в другую программу или в документ, или в определенные области носителя данных и предназначенный для выполнения несанкционированных действий на компьютере. Сейчас почти во всех вирусах заложен алгоритм размножения по Сети (по электронной почте, через WEB и т.п.).
Вирусы принято делить на классы по следующим основным признакам:
среда обитания;
объем причиненного вреда;
операционная система;
41
алгоритм работы.
По среде обитания вирусы можно разделить:
на файловые;
сетевые;
макровирусы;
загрузочные.
По объему причиненного вреда вирусы подразделяются:
на безвредные, т.е. никак не влияющие на работу компь-
ютера;
неопасные, т.е. те, которые просто себя распространяют, при этом, например, выдвигая CD-ROM или мигая лампочками на клавиатуре;
опасные, которые могут привести к серьезным сбоям
вработе компьютера;
очень опасные, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, даже ту, которая находится в системной области данных.
Файловые вирусы – это те, которые при своем размножении используют файловую систему определенной операционной системы.
Сетевыми называются такие вирусы, которые при своем распространении используют возможности Интернета и локальных сетей.
Основным принципом работы сетевого вируса является возможность самостоятельно передать свой код на удаленный сервер и заставить его выполниться. Сетевые вирусы нередко называют сетевыми червями. Для своего распространения они используют ошибки и недокументированные функции сетей или операционных систем, при этом распространяясь по серверам и запуская свой код на каждом из них.
Макровирусы – это вирусы на макроязыках различных приложений (MS Excel, MS Word и т.п.). Для своего размножения они используют возможности макроязыков и с их помощью переносят себя из одного зараженного файла (документа или таблицы) в другие.
42
Загрузочные вирусы заражают загрузочный (boot) сектор флоппи-диска или винчестера. При заражении дисков загрузочные вирусы подставляют свой код вместо какой-либо программы, получающей управление при загрузке системы. Вирус заставляет систему при перезапуске считать в память и отдать управление не оригинальному коду загрузчика, а коду вируса.
Средства антивирусной защиты. Основным средством защиты информации является резервное копирование наиболее ценных данных. Резервные копии должны храниться отдельно от компьютера на внешних носителях.
Вспомогательным средством защиты информации являются антивирусные программы, которые следует регулярно обновлять, так как антивирусная программа ищет вирус путем сравнения кода программ с кодами известных ей вирусов, хранящимися в базе данных. Если база данных устарела, а вирус является новым, сканирующая программа его не обнаружит.
Защита информации в Интернете. Понятие о шифро-
вании информации. Принцип действия защиты информации
вИнтернете основан на том, чтобы исключить возможность подбора адекватного метода для преобразования данных в информацию. Одним из приемов такой защиты является шифрование данных.
Обычный подход состоит в том, что к документу применяется некий метод шифрования (ключ), после чего документ становится недоступен для чтения обычными средствами. Его может прочитать только тот, кто знает ключ, т.е. может применить адекватный метод чтения. Если в процессе обмена информацией для шифрования и чтения пользуются одним и тем же ключом, то такой криптографический процесс является сим-
метричным.
Основной недостаток симметричного процесса заключается
втом, что, прежде чем начать обмен информацией, надо выполнить передачу ключа, а для этого опять нужна защищенная связь, т.е. проблема повторяется.
Поэтому в настоящее время в Интернете используют несимметричные криптографические системы, основанные на использовании не одного, а двух ключей. Компания для работы
43
с клиентами создает два ключа: один – открытый (публичный) ключ, а другой – закрытый (личный) ключ. На самом деле это как бы две «половинки» одного целого ключа, связанные друг с другом. Ключи устроены так, что сообщение, зашифрованное одной половинкой, можно расшифровать только другой половинкой. Таким образом, торговая компания широко распространяет публичный ключ и надежно сохраняет закрытый. Оба эти ключа представляют собой некую кодовую последовательность.
Защиту информации принято считать достаточной, если затраты на ее преодоление превышают ожидаемую ценность самой информации. В этом состоит принцип достаточности защиты, которым руководствуются при использовании несимметричных средств шифрования данных.
7. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ
7.1. Алгоритм и его свойства
Под алгоритмизацией понимают сведение задачи к последовательности этапов, выполняемых друг за другом, так что результаты предыдущих этапов используются при выполнении последующих. Алгоритм – это четкое описание последовательности действий, которые необходимо выполнить для решения задачи.
Алгоритм обладает следующими свойствами: дискретностью, определенностью, результативностью, массовостью.
Дискретность. Процесс преобразования исходных данных в результат осуществляется дискретно, так что значения величин в каждый последующий момент времени получаются по определенным правилам из значений величин в предшествующий момент времени.
Определенность. Каждое правило алгоритма должно быть четким и однозначным, не допускающим двусмысленного толкования.
Результативность. Алгоритм должен приводить к результату за конечное число шагов.
44
Массовость. Алгоритм решения задачи разрабатывается в общем виде так, чтобы его можно было применить для класса задач, различающихся лишь исходными данными.
Программа – это окончательный вариант решения задачи на языке программирования.
|
|
|
|
|
|
|
|
|
|
|
Таблица 1 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Символ |
Описание |
|
|
|
Пример |
|
|
||||||
|
|
|
|
|
|
Начало и окончание ал- |
|
|
|
Начало |
|
|
||||
|
|
|
|
|
|
горитма |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ввод и вывод данных |
|
|
|
Ввод Х |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Операция, определяю- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
щая выбор направления |
|
нет |
|
X > 0 |
да |
|||||
|
|
|
|
|
|
выполнения алгоритма |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обозначение |
операций |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Х = Х + 1 |
|
|
|
|
||||
|
|
|
|
|
|
присваивания |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обозначение |
заголовка |
|
|
|
i = 1, n |
|
|
|||
|
|
|
|
|
|
цикла с параметром |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обозначение |
подпро- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MAX |
|
|
|
|
|
||
|
|
|
|
|
|
грамм |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Алгоритм решения задачи может быть представлен графически – в виде блок-схем. Блок-схема алгоритма представляет собой совокупность блоков (табл. 1), соединенных между собой линиями связи.
7.2. Основные структуры алгоритмов
Теория структурного программирования доказывает, что алгоритм любой степени сложности можно построить с помощью основного базового набора структур [2].
45
К основным (базовым) структурам алгоритмов относятся: следование, разветвление, цикл. Каждая из структур имеет один вход и один выход.
Следование – это последовательное размещение блоков или групп блоков (рис. 3, а). Например, два блока S1 и S2 могут быть размещены друг за другом, при этом каждый из них в свою очередь может представлять собой любую базовую структуру.
Разветвление состоит из логического блока с проверкой некоторого условия Р и блоков S1, S2. Разветвление может быть двух видов: полная условная конструкция (рис. 3, б) и неполная условная конструкция – обход (рис. 3, в). Полная условная конструкция применяется, когда в зависимости от условия Р нужно выполнить либо S1, либо S2. Для структуры обход блок S или выполняется, или не выполняется.
|
|
|
|
|
|
|
|
|
|
|
|
|
нет |
|||
S1 |
|
|
да |
|
|
нет |
|
|
|
|||||||
|
|
|
|
|||||||||||||
|
|
|
|
|
Р |
|
|
|||||||||
|
|
|
|
|
|
Р |
|
да |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S2 |
|
S1 |
|
|
S2 |
|
S |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
а |
|
|
|
|
|
б |
|
|
|
в |
||||||
|
|
|
|
|
|
|
|
|||||||||
Рис. 3. Основные структуры алгоритмов: а – следование; б, в – разветвление
Циклическими называются алгоритмы, у которых выполнение некоторых операторов (групп операторов) осуществляется многократно с одними и теми же или модифицированными данными.
В зависимости от способа организации числа повторений различают три типа циклов: цикл с заданным условием продолжения работы (цикл-ПОКА, рис. 4, а), цикл с заданным условием окончания работы (цикл-ДО, рис. 4, б) и цикл с заданным числом повторений (цикл с параметром, рис. 4, в).
46
|
|
|
нет |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
i = iн, iк |
|
||||
|
Р |
|
Тело цикла |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
да |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
да |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
Р |
|
Тело цикла |
|
|||||
|
Тело цикла |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
а |
|
|
|
|
б |
|
|
|
|
в |
|
||
Рис. 4. Типы циклов: а – цикл-ПОКА; б – цикл-ДО; в – цикл с параметром
Тело цикла может включать в себя группу операторов любой степени сложности.
Для цикла-ПОКА (см. рис. 4, а) при выполнении условия Р выполняется тело цикла; если же условие не выполняется, то работа циклической структуры заканчивается и начинает выполняться следующая структура основного алгоритма. В этом случае Р – условие для продолжения цикла.
Структура цикла-ПОКА предусматривает вариант, когда тело цикла не выполняется ни разу. Такое возможно, если условие, стоящее в начале цикла, сразу же не выполняется. Когда при решении задач возникает необходимость использовать структуру, у которой тело цикла выполняется хотя бы один раз, то в этом случае применяется структура цикла-ДО (см. рис. 4, б). В этом случае Р – условие окончания цикла, т.е. выход из циклаДО осуществляется при выполнении условия.
Выполнение цикла с параметром (см. рис. 4, в) осуществляется следующим образом: при изменении параметра i от начального значения iн до конечного значения iк повторяется тело цикла.
47
7.3.Алгоритмы линейной, разветвляющейся
ициклической структуры
Алгоритмы линейной структуры. Линейный вычисли-
тельный процесс – это такой процесс, все вычисления которого выполняются последовательно одно за другим в естественном порядке.
Начало
Ввод a, b
c 
a2 b2
s= a b/2
Вывод c, s
Конец
Рис. 5. Пример линейного алгоритма
Пример. Даны катеты a, b прямоугольного треугольника. Найти его гипотенузу c и площадь s. Блок-схема алгоритма приведена на рис. 5.
Алгоритмы разветвляющейся структуры. Разветвляющимся (ветвя-
щимся) называется алгоритм, который в зависимости от исходных данных или промежуточных результатов вычисления реализуется по одному из нескольких заранее предусмотренных направлений. Такие направления называются
ветвями вычислений. Выбор той или иной ветви осуществляется в зависимости от результата проверки условия. В каждом конкретном случае алгоритм реализуется только по одной ветви,
авыполнение остальных исключается.
Вкачестве примера использования ветвлений рассмотрим составление алгоритма для вычисления функции f(x) в зависимости от конкретных значений x, a, b:
x a2, |
при x 1, |
f x a b, при1 x 4,x b2, при x 4.
Блок-схема алгоритма решения этой задачи приведена на рис. 6.
48
|
|
|
Начало |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ввод |
|
|
|
|
|
||
|
|
|
a, b, x |
|
|
|
|
|
||
|
да |
|
|
|
|
нет |
||||
|
|
|
|
|
||||||
|
x 1 |
|||||||||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|||
|
|
|
|
да |
|
|
|
нет |
||
f = x + a2 |
|
x 4 |
||||||||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f = x + b2 |
|
|
|
f = x – a b |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вывод x, f
Конец
Рис. 6. Пример разветвляющегося алгоритма
Алгоритмы циклической структуры. Алгоритмы, в кото-
рых отдельные действия многократно повторяются, называются циклическими. Типовые алгоритмические структуры, реализующие циклический вычислительный процесс, приведены на рис. 4. Циклический алгоритм состоит из подготовки цикла, тела цикла и условия повторения цикла.
Характерной для этого класса вычислительных процессов является задача табулирования функции, т.е. вычисления значений функции y = f(x) на отрезке [xн, xк] с шагом х (рис. 7).
49
Начало |
Ввод |
хн, хк, х |
х = хн |
y = f(x) |
Вывод x, y |
х = х + х |
да |
х > хк |
нет |
Конец |
Рис. 7. Блок-схема алгоритма табулирования функции
Начало |
Ввод х |
S = 0 |
n = 1, 6 |
y = ( 1)n 1 x2n 1 |
4n2 1 |
S = S + y |
Вывод S |
Конец
Рис. 8. Блок-схема алгоритма вычисления суммы членов ряда
Примером алгоритма циклической структуры является также задача вычисления суммы и произведения.
Если необходимо вычислить сумму значений некоторой функции y = f(x) при различных значениях аргумента, то целесообразно организовать цикл, в котором не только вычисляются текущие значения функции, но и накапливается их сумма путем прибавления полученного слагаемого к сумме предыдущих. Формула для вычисления суммы имеет следующий вид:
50
