Главная страница
Навигация по странице:

  • Защита информации в Интернете. Понятие о шифро

  • 7. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ 7.1. Алгоритм и его свойства

  • 7.2. Основные структуры алгоритмов

  • 7.3. Алгоритмы линейной, разветвляющейся и циклической структуры Алгоритмы линейной структуры.

  • Алгоритмы

  • Алгоритмы циклической структуры.

  • 7.4. Программирование на языке Паскаль

  • Арифметическое выражение.

  • Информатика. Информатика утверждено Редакционноиздательским советом университета в качестве учебного пособия Издательство Пермского государственного технического университета 2008 2 удк 004(075.


    Скачать 1.98 Mb.
    НазваниеИнформатика утверждено Редакционноиздательским советом университета в качестве учебного пособия Издательство Пермского государственного технического университета 2008 2 удк 004(075.
    АнкорИнформатика
    Дата11.01.2023
    Размер1.98 Mb.
    Формат файлаpdf
    Имя файлаinformatika.pdf
    ТипДокументы
    #880674
    страница5 из 10
    1   2   3   4   5   6   7   8   9   10
    Средства антивирусной защиты. Основным средством защиты информации является резервное копирование наиболее ценных данных. Резервные копии должны храниться отдельно от компьютера на внешних носителях.
    Вспомогательным средством защиты информации являют- ся антивирусные программы, которые следует регулярно обнов- лять, так как антивирусная программа ищет вирус путем срав- нения кода программ с кодами известных ей вирусов, хранящи- мися в базе данных. Если база данных устарела, а вирус является новым, сканирующая программа его не обнаружит.
    Защита информации в Интернете. Понятие о шифро-
    вании информации. Принцип действия защиты информации в Интернете основан на том, чтобы исключить возможность подбора адекватного метода для преобразования данных в ин- формацию. Одним из приемов такой защиты является шифрова-
    ние данных.
    Обычный подход состоит в том, что к документу применя- ется некий метод шифрования (ключ), после чего документ ста- новится недоступен для чтения обычными средствами. Его мо- жет прочитать только тот, кто знает ключ, т.е. может применить
    адекватный метод чтения. Если в процессе обмена информа- цией для шифрования и чтения пользуются одним и тем же ключом, то такой криптографический процесс является сим-
    метричным.
    Основной недостаток симметричного процесса заключается в том, что, прежде чем начать обмен информацией, надо выпол- нить передачу ключа, а для этого опять нужна защищенная связь, т.е. проблема повторяется.
    Поэтому в настоящее время в Интернете используют не-
    симметричные криптографические системы, основанные на ис- пользовании не одного, а двух ключей. Компания для работы

    44 с клиентами создает два ключа: один – открытый (публич- ный) ключ, а другой – закрытый (личный) ключ. На самом деле это как бы две «половинки» одного целого ключа, связанные друг с другом. Ключи устроены так, что сообщение, зашифро- ванное одной половинкой, можно расшифровать только другой половинкой. Таким образом, торговая компания широко расп- ространяет публичный ключ и надежно сохраняет закрытый.
    Оба эти ключа представляют собой некую кодовую последова- тельность.
    Защиту информации принято считать достаточной, если за- траты на ее преодоление превышают ожидаемую ценность са- мой информации. В этом состоит принцип достаточности за-
    щиты, которым руководствуются при использовании несим- метричных средств шифрования данных.
    7. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ
    НА ЯЗЫКЕ ПАСКАЛЬ
    7.1. Алгоритм и его свойства
    Под алгоритмизацией понимают сведение задачи к после- довательности этапов, выполняемых друг за другом, так что ре- зультаты предыдущих этапов используются при выполнении последующих. Алгоритм – это четкое описание последователь- ности действий, которые необходимо выполнить для решения задачи.
    Алгоритм обладает следующими свойствами: дискретно- стью, определенностью, результативностью, массовостью.
    Дискретность. Процесс преобразования исходных данных в результат осуществляется дискретно, так что значения вели- чин в каждый последующий момент времени получаются по оп- ределенным правилам из значений величин в предшествующий момент времени.
    Определенность. Каждое правило алгоритма должно быть четким и однозначным, не допускающим двусмысленного тол- кования.
    Результативность. Алгоритм должен приводить к резуль- тату за конечное число шагов.

    45
    Массовость. Алгоритм решения задачи разрабатывается в общем виде так, чтобы его можно было применить для класса задач, различающихся лишь исходными данными.
    Программа – это окончательный вариант решения задачи на языке программирования.
    Таблица 1
    Символ
    Описание
    Пример
    Начало и окончание ал- горитма
    Ввод и вывод данных
    Операция, определяю- щая выбор направления выполнения алгоритма
    Обозначение операций присваивания
    Обозначение заголовка цикла с параметром
    Обозначение подпро- грамм
    Алгоритм решения задачи может быть представлен графи- чески – в виде блок-схем. Блок-схема алгоритма представляет собой совокупность блоков (табл. 1), соединенных между собой линиями связи.
    7.2. Основные структуры алгоритмов
    Теория структурного программирования доказывает, что алгоритм любой степени сложности можно построить с помо- щью основного базового набора структур [2].
    Начало
    Ввод Х
    X > 0 да нет
    Х = Х + 1
    MAX i = 1, n

    46
    К основным (базовым) структурам алгоритмов относятся: следование, разветвление, цикл. Каждая из структур имеет один вход и один выход.
    Следование – это последовательное размещение блоков или групп блоков (рис. 3, а). Например, два блока S1 и S2 могут быть размещены друг за другом, при этом каждый из них в свою очередь может представлять собой любую базовую структуру.
    Разветвление состоит из логического блока с проверкой некоторого условия Р и блоков S1, S2. Разветвление может быть двух видов: полная условная конструкция (рис. 3, б) и неполная условная конструкция – обход (рис. 3, в). Полная условная кон- струкция применяется, когда в зависимости от условия Р нужно выполнить либо S1, либо S2. Для структуры обход блок S или выполняется, или не выполняется.
    а б в
    Рис. 3. Основные структуры алгоритмов: а – следование;
    б, в – разветвление
    Циклическими называются алгоритмы, у которых выпол- нение некоторых операторов (групп операторов) осуществляет- ся многократно с одними и теми же или модифицированными данными.
    В зависимости от способа организации числа повторений различают три типа циклов: цикл с заданным условием продол- жения работы (цикл-ПОКА, рис. 4, а), цикл с заданным услови- ем окончания работы (цикл-ДО, рис. 4, б) и цикл с заданным числом повторений (цикл с параметром, рис. 4, в).
    S1
    S2
    Р
    S2
    S1 нет да
    Р
    S нет да

    47
    а
    б
    в
    Рис. 4. Типы циклов: а – цикл-ПОКА; б – цикл-ДО; в – цикл с пара- метром
    Тело цикла может включать в себя группу операторов лю- бой степени сложности.
    Для цикла-ПОКА (см. рис. 4, а) при выполнении условия Р выполняется тело цикла; если же условие не выполняется, то работа циклической структуры заканчивается и начинает вы- полняться следующая структура основного алгоритма. В этом случае Р – условие для продолжения цикла.
    Структура цикла-ПОКА предусматривает вариант, когда тело цикла не выполняется ни разу. Такое возможно, если усло- вие, стоящее в начале цикла, сразу же не выполняется. Когда при решении задач возникает необходимость использовать структуру, у которой тело цикла выполняется хотя бы один раз, то в этом случае применяется структура цикла-ДО (см. рис. 4, б).
    В этом случае Р – условие окончания цикла, т.е. выход из цикла-
    ДО осуществляется при выполнении условия.
    Выполнение цикла с параметром (см. рис. 4, в) осуществ- ляется следующим образом: при изменении параметра i от начального значения i
    н до конечного значения i
    к повторяется те- ло цикла.
    Р
    Тело цикла нет да
    Р
    Тело цикла нет да
    i = i
    н
    , i
    к
    Тело цикла

    48
    7.3. Алгоритмы линейной, разветвляющейся
    и циклической структуры
    Алгоритмы линейной структуры.Линейный вычисли- тельный процесс – это такой процесс, все вычисления которого выполняются последовательно одно за другим в естественном порядке.
    Пример. Даны катеты a, b прямо- угольного треугольника. Найти его ги- потенузу c и площадь s. Блок-схема ал- горитма приведена на рис. 5.
    Алгоритмы
    разветвляющейся
    структуры. Разветвляющимся (ветвя- щимся) называется алгоритм, который в зависимости от исходных данных или промежуточных результатов вычисле- ния реализуется по одному из несколь- ких заранее предусмотренных направ- лений. Такие направления называются
    ветвями вычислений. Выбор той или иной ветви осуществляется в зависимо- сти от результата проверки условия.
    В каждом конкретном случае алгоритм реализуется только по одной ветви, а выполнение остальных исключается.
    В качестве примера использования ветвлений рассмотрим составление ал- горитма для вычисления функции f(x) в зависимости от конкретных значе- ний x, a, b:














    4
    при
    ,
    ,
    4 1
    при
    ,
    ,
    1
    при
    ,
    2 2
    x
    b
    x
    x
    b
    a
    x
    x
    a
    x
    f
    Блок-схема алгоритма решения этой задачи приведена на рис. 6.
    Начало
    Ввод a, b
    Вывод
    c, s
    Конец
    2 2
    b
    a
    c


    s = a b/2
    Рис. 5. Пример линей- ного алгоритма

    49
    Рис. 6. Пример разветвляющегося алгоритма
    Алгоритмы циклической структуры. Алгоритмы, в кото- рых отдельные действия многократно повторяются, называются
    циклическими. Типовые алгоритмические структуры, реализую- щие циклический вычислительный процесс, приведены на рис. 4. Циклический алгоритм состоит из подготовки цикла, те- ла цикла и условия повторения цикла.
    Характерной для этого класса вычислительных процессов является задача табулирования функции, т.е. вычисления значе- ний функции y = f(x) на отрезке [x
    н
    , x
    к
    ] с шагом х (рис. 7).
    Начало
    Ввод
    a, b, x
    Вывод
    x, f
    Конец
    f = x + b
    2
    f = x + a
    2
    x  1
    нет да
    x  4 нет да
    f = x a
    b

    50
    Рис. 7. Блок-схема алгоритма табулирования функции
    Рис. 8. Блок-схема алгоритма вычисления суммы членов ряда
    Примером алгоритма циклической структуры является также задача вычисления суммы и произведения.
    Если необходимо вычислить сумму значений некоторой функции y = f(x) при различных значениях аргумента, то целесо- образно организовать цикл, в котором не только вычисляются текущие значения функции, но и накапливается их сумма путем прибавления полученного слагаемого к сумме предыдущих.
    Формула для вычисления суммы имеет следующий вид:
    Начало
    Ввод
    х
    н
    , х
    к
    ,
    х
    х = х
    н
    х > х
    к
    х = х + х нет да
    y = f(x)
    Вывод x, y
    Конец
    Начало
    Ввод х
    S = 0
    n = 1, 6
    y =
    1 4
    )
    1
    (
    2 1
    2 1




    n
    x
    n
    n
    S = S + y
    Вывод
    S
    Конец

    51
    i
    i
    i
    y
    S
    S


    1
    При первом выполнении цикла вычисляется значение
    1 0
    1
    y
    S
    S


    , которое должно быть равно y
    1
    . Поэтому перед циклом началь- ному значению суммы следует присвоить значение ноль, т.е.
    S
    0
    = 0.
    Аналогично вычисляется и произведение, с той лишь раз- ницей, что для его накопления используется формула
    i
    i
    i
    y
    P
    P


    1
    , а начальное значение произведения должно быть равно единице, т.е. P
    0
    = 1.
    Пример: вычислить
    ,
    1 4
    )
    1
    (
    6 1
    2 1
    2 1







    n
    n
    n
    n
    x
    S
    3
    ,
    0

    x
    Блок- схема алгоритма решения этой задачи представлена на рис. 8.
    Так как результат решения представляет собой одно чис- ло, то блок печати стоит за циклом и результаты печатаются один раз.
    7.4. Программирование на языке Паскаль
    Чтобы выполнить программу на языке Паскаль, ее необхо- димо ввести в память компьютера, оттранслировать, т.е. пере- вести на язык машинных кодов, и выполнить. Для этого на ком- пьютере должны быть специальные средства программного обеспечения, т.е. редактор текстов, компилятор и исполнитель- ная система. Все эти средства объединены в систему Turbo Pas- cal (Турбо Паскаль) [3].
    Операторы языка. Служат для описания некоторого за- конченного этапа обработки данных. Операторы определяют действия над объектами программы; могут быть простыми и структурированными, т.е. состоящими из других операторов.
    Операторы, следующие в программе друг за другом, разделяют- ся точкой с запятой (;).
    Идентификаторы. Выполняют роль имен, которые дают- ся различным программным объектам – константам, типам, пе-

    52 ременным величинам, функциям и т.п., чтобы программисту было удобно ссылаться на эти объекты. Идентификатор может начинаться только с буквы или знака подчеркивания. Пробелы и другие специальные символы недопустимы в идентификато- рах. Компилятор не делает различия между прописными и строчными буквами.
    Типы данных. Каждая константа, переменная, элемент массива принадлежит к определенному типу данных. Тип опре- деляет множество значений, которые может принимать объект программы, и совокупность операций, которые могут выпол- няться над значениями этого объекта. Тип констант распознает- ся компилятором автоматически. Тип переменных должен быть описан в разделе описаний (в разделе переменных, начи- нающемся со специального слова var). Паскаль характеризует- ся разветвленной структурой типов данных (табл. 2).
    В табл. 2
    Таблица 2
    Идентификатор Длина, байт Диапазон (множество) значений
    Целые типы
    integer
    2
    –32768…32767 byte
    1 0…255 word
    2 0…65535 shortint
    1
    –128…127 longint
    4
    –2147483648…2147483647
    Вещественные типы
    real
    6 2,9  10
    –39
    …1,7  10 38
    (11–12) singl
    4 1,5  10
    –45
    …3,4  10 38
    (7–8) double
    8 5  10
    –324
    …1,7  10 308
    (15–16) extended
    10 3,4  10
    –4932
    …1,1  10 4932
    (19–20)
    Логический тип boolean
    1 true (истина), false (ложь)
    Символьный тип char
    1 все символы кода ASCII

    53 представлена информация о простых типах данных, определен- ных в Турбо Паскале. Для вещественных типов в скобках указа- но количество сохраняемых значащих цифр мантиссы в деся- тичном представлении числа.
    Арифметическое выражение. Задает порядок выполнения действий над элементами данных и состоит из операндов (кон- стант, переменных, обращений к функциям), круглых скобок и знаков операций. Выражение должно содержать данные одного типа, при этом значение выражения получается того же типа.
    Однако допускается использование в одном выражении данных целого и вещественного типов, результат в этом случае получа- ется вещественного типа.
    Арифметические операции приведены в табл. 3. Операции выполняются в соответствии с их приоритетом. Операции с рав- ным приоритетом выполняются слева направо. В случае необ- ходимости изменения порядка выполнения операции использу- ются круглые скобки.
    Таблица 3
    Знак опе- рации
    Содержание Выражение
    Тип операндов
    Тип результата
    +
    Сложение
    A + B
    Целый, вещественный
    Целый, вещественный

    Вычитание
    AB
    Целый, вещественный
    Целый, вещественный
    *
    Умножение
    A * B
    Целый, вещественный
    Целый, вещественный
    /
    Деление
    A / B
    Целый, вещественный
    Целый, вещественный div Целочислен- ное деление
    A div B
    Целый
    Целый mod Остаток
    A mod B Целый
    Целый

    54
    Операция div возвращает целую часть частного, дробная часть отбрасывается. Операция mod восстанавливает остаток, полученный при выполнении целочисленного деления.
    Стандартные функции. В языке Турбо Паскаль сущест- вуют заранее разработанные подпрограммы-функции (табл. 4), которые могут использоваться в программах. Аргументы функ- ций записываются в круглых скобках.
    Таблица 4
    Обозначение
    Тип аргумента
    Тип результата
    Функция
    Pi
    – real
    Число  = 3,1415926536 abs(x) integer/real integer/real Модуль аргумента arctan(x) integer/real real
    Арктангенс (радианы) cos(x) integer/real real
    Косинус (х в радианах) sin(x) integer/real real
    Синус (х в радианах) exp(x) integer/real real
    Экспонента е
    х frac(x) integer/real real
    Дробная часть х int(x) integer/real real
    Целая часть х ln(x) integer/real real
    Натуральный логарифм random real
    Псевдослучайное число из диапазона [0, 1) random(x) integer integer
    Псевдослучайное число из диапазона [0, х) round(x) real integer
    Округление до ближай- шего целого sqr(x) integer/real integer/real Квадрат х sqrt(x) integer/real real
    Корень квадратный trunc(x) real integer
    Ближайшее целое, не пре- вышающее х по модулю

    55
    В Паскале нет операции или стандартной функции возве- дения числа в произвольную степень. Для вычисления а
    х
    ис- пользуется следующая математическая формула:
    )
    ln(a
    x
    x
    e
    a


    На Паскале это будет выглядеть так: exp(x*ln(a)).
    Вычисление tg(x) производится с помощью выражения sin(x)/cos(x).
    Вычисление log
    b
    a производится с помощью выражения ln(a)/ln(b).
    Например, запишем по правилам Паскаля следующее ма- тематическое выражение:
    1 2



    x
    x
    b
    a
    На Паскале это выглядит так: (a + b*x)/sqrt(x*x + 1).
    1   2   3   4   5   6   7   8   9   10


    написать администратору сайта