Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Praktikum_2008

.pdf
Скачиваний:
271
Добавлен:
06.06.2015
Размер:
8.23 Mб
Скачать

лении иных средств, позволяющих получить зашифрованную информацию в разумные сроки, изменяют принцип работы алгоритма, и проблема повторяется на более высоком уровне.

Разумеется, не всегда реконструкцию закрытого ключа производят методами простого перебора комбинаций. Для этого существуют специальные методы реконструкции закрытого ключа по опубликованному открытому ключу. Область науки, посвященная этим исследованиям, называется криптоанализом, а средняя продолжительность времени, необходимого для реконструкции закрытого ключа, называется криптостойкостью алгоритма шифрования.

Для многих методов несимметричного шифрования криптостойкость, определенная в результате криптоанализа, существенно отличается от величин, заявляемых разработчиками алгоритмов на основании теоретических оценок. Поэтому во многих странах вопрос применения алгоритмов шифрования данных находится в поле законодательного регулирования. В частности, в России к использованию в государственных и коммерческих организациях разрешены только те программные средства шифрования данных, которые прошли государственную сертификацию в административных органах, в частности в Федеральном агенстве правительственной связи и информации (ФАПСИ).

Мы рассмотрели вопрос, как клиент может переслать организации свои конфиденциальные данные, например номер электронного счета. Точно так же он может общаться и с банком, отдавая ему распоряжения о перечислении своих средств на счета других лиц и организаций. Однако здесь возникает следующая проблема: как банк узнает, что распоряжение поступило от данного лица, а не от злоумышленника, выдающего себя за него? Эта проблема решается с помощью так называемой электронной подписи.

Принцип создания электронной подписи тот же, что и рассмотренный выше. Если надо создать электронную подпись, следует с помощью специальной программы, полученной из банка, создать те же два ключа — закрытый и публичный. Публичный ключ передается банку. Если теперь надо отправить поручение банку на операцию с расчетным счетом, оно кодируется публичным ключом банка, а подпись под ним кодируется закрытым

281

ключом поручителя. Банк поступает наоборот: он читает поручение с помощью своего закрытого ключа, а подпись — с помощью публичного ключа поручителя. Если подпись читаема, это означает, что поручение отправлено данным лицом.

Приложение 1. Темы рекомендуемых лабораторных работ

1. Виртуальное посещение музеев (2 часа)

Задание: средствами программы Internet Explorer войти на сайты Эрмитажа в Санкт-Петербурге (www.hermitage.ru) и Государственного музея изобразительных искусств им. А. С. Пушкина в Москве (www.museum.ru/gmii) и с помощью гиперссылок начать знакомство с экспозициями этих музеев.

2. Поиск необходимой информации (4 часа)

Задание: с помощью рассмотренных поисковых систем найти Web-страницу с описанием строительного объекта, введенного в строй за последние 10 лет в заданном городе.

Найденную Web-страницу, которая потребуется в дальнейшем, сохранить полностью и показать ее преподавателю.

3. Организация почтового ящика, отправка и получение электронных писем (4 часа)

Задание:

1)завести индивидуальный почтовый ящик на сайте www.mail.ru;

2)обменяться письмами (с приложениями и без) с товарищами по группе; копии выслать преподавателю по заданному адресу;

3)выслать преподавателю Web-страницу с описанием строительного объекта, найденную в предыдущей лабораторной работе, в заархивированном виде.

Требование: в текстовом поле Тема электронных писем должны присутствовать фамилия и имя автора, а также номера группы и лабораторной работы.

4. Создание набора Web-страниц и размещение его на сайте (4 часа)

282

Задание:

1)по заданной теме создать многостраничный сайт из собственных и чужих Web-страниц, расставляя гиперссылки в документах Word;

2)созданный сайт разместить на сайте www.narod.yandex.ru;

3)адрес сайта выслать преподавателю.

Требование: в текстовом поле Тема электронного письма

должны присутствовать фамилия и имя автора, а также номера группы и лабораторной работы.

5. Создание Web-страниц средствами сайта (4 часа)

Задание:

1)по заданной теме создать Web-страницу или набор Webстраниц на сайте www.narod.yandex.ru средствами Мастерской;

2)адрес созданного сайта выслать преподавателю. Требование: в текстовом поле Тема электронного письма

должны присутствовать фамилия и имя автора, а также номера группы и лабораторной работы.

Приложение 2. Кодировка русских букв латинскими

Русские буквы

Латинские буквы

Пример

а, б, в, г, д

a, b, v, g, d

Ерофеев — Yerofeyev

е

ye или e

ё

yo

Ёлкин — Yolkin

ж

zh

Жаров — Zharov

з, и

z, i

Буковский — Bukovskiy

й

y

к, л, м, н, о, п, р, с, т, у, ф

k, l, m, n, o, p, r, s, t, u, f

Хренов — Khrenov

х

kh или h

ц

ts

Ципкин — Tsipkin

ч

ch

Чубайс — Chubays

ш

sh

Тимошин — Timoshin

щ

sch

Ващенко — Vaschenko

ы

y

Быков — Bykov

э

e

Этуш — Etush

ю

yu

Юрский — Yurskiy

я

ya

Ошмян — Oshmyan

Замечание: слова произносятся по правилам английского языка.

283

Приложение 3. Список полезных сайтов

Адрес

Название

www.elibrary.ru

Научная электронная библиотека

www.translate.ru

Online переводчик

www.skype.com

Сайт аудиовизуального и текстового общения

www.odnoklassniki.ru

Сайт общения Одноклассники.ru

Глава 6 Программирование в среде Delphi

§1. Разработка линейных программ

В этом параграфе рассматриваются следующие вопросы:

алгоритм и программа; этапы разработки программы; типы данных языка Object Pascal, переменные и константы, оператор присваивания; некоторые процедуры преобразования, простейшие приемы создания окна в среде Delphi, структура процедуры обработки события, создание и сохранение простейшего проекта, компиляция, запуск на выполнение.

Теория

Алгоритм и программа

Алгоритм — это точная последовательность действий, преобразующих исходные данные в нужный результат. Алгоритм должен обладать тремя свойствами: однозначностью, массовостью и результативностью. Однозначность — это единственность толкования правил и порядка выполнения действий. Массовость — это возможность применения алгоритма для решения класса задач, что предполагает его правильную работу при меняющихся в заданных пределах значениях исходных данных.

284

Алгоритм решения задачи может быть представлен в виде словесного описания или графически в виде блок–схемы. В блок– схемах используются следующие специальные символы:

начало/конец ввод/вывод преобразование проверка данных (обработка) условия

Программа — это последовательность команд, описывающих алгоритм на языке программирования.

Этапы разработки программы

1.Определение требований к программе. На этом этапе под-

робно описывается исходная информация и формулируются требования к результату, описывается поведение программы в особых случаях. Разрабатываются диалоговые окна, обеспечивающие взаимодействие пользователя и программы.

2.Разработка алгоритма. Определяется последовательность действий, которые надо выполнить для получения результата. Результатом этапа разработки алгоритма является подробное словесное описание алгоритма или его блок-схема.

3.Кодирование. Алгоритм записывается на выбранном языке программирования .

4.Отладка — это процесс поиска и устранения ошибок. Ошибки в программе разделяются на две группы: синтаксические (ошибки в тексте) и алгоритмические (логические).

5.Тестирование. На этом этапе проверяют, как ведет себя программа на как можно большем количестве входных наборов данных, в том числе и на заведомо неверных.

Типы данных языка Delphi

Мы рассмотрим здесь те типы данных, которые необходимы для обучения программированию на начальном уровне.

Замечание. Так как данная глава рассчитана на специалистов, которые в своей работе не будут непосредственно заниматься программированием, то мы рассмотрим небольшую часть типов данных Delphi версии 6.

ВDelphi простые типы данных разбиты на две группы: порядковые, представляющие данные разных объемов, которыми процессор может легко манипулировать, и действительные, пред-

285

ставляющие приближенно математические действительные числа. В порядковых типах информация представляется в виде отдельных элементов. Связь между отдельными элементами и их представлением в памяти определяет естественные отношения порядка между этими элементами. В Delphi определены три группы порядковых типов и два типа, определяемых пользователем. Группы — это целые, символьные и булевы типы. Порядковые типы, задаваемые пользователем, — это перечисления и поддиапазоны.

Все значения любого порядкового типа образуют упорядоченную последовательность, и значение переменной порядкового типа определяется его местом в этой последовательности. За исключением переменных целых типов, значения которых могут быть как положительными, так и отрицательными, первый элемент любого порядкового типа имеет номер 0, второй элемент — номер 1 и т.д.

Целые типы

В переменных целых типов информация представляется в виде целых чисел, т.е. чисел, не имеющих дробной части.

Таблица 1.1. Целые типы

Тип

Диапазон значений

 

Физический

 

формат

 

 

 

 

 

 

 

Int64

-263..263-1

64

,бит, со знаком

 

 

 

Byte

0..255

8 бит, без знака

 

 

 

 

Word

0..65 535

16

бит, без знака

 

 

 

 

Integer

-32 768..32 767

16

бит, со знаком

 

 

 

 

Символьный тип

Delphi поддерживает универсальный символьный тип — char. В Delphi char соответствует типу данных AnsiChar.

Булевый тип

В Delphi информация о чем-либо, что можно представить как ИСТИНА (True) или ЛОЖЬ (False), хранится в переменных булевых типов. Всего таких типов четыре, но для Delphi предпочтителен тип Boolean, остальные определены для совместимости с другими языками программирования и операционными системами.

Переменным типа Boolean можно присваивать только значения True (истина) и False (ложь).

286

Перечислимые типы

Перечислимый тип можно объявить следующим образом:

Type enum type = (first value, value2, value3, last value); .

Обычно данные перечислимых типов содержат дискретные значения, представляемые не числами, а именами. Тип Boolean — простейший перечислимый тип в Object Pascal. Булевы переменные могут принимать два значения, выражаемые именами True и False, а сам тип определен в Object Pascal так, как будто он объявлен следующим образом:

Type Boolean = (False, True); .

С помощью типа Boolean в Object Pascal выполняются сравнения, большинство же перечислимых типов — это просто списки уникальных имен или идентификаторов, зарезервированных с конкретной целью. Например, можно создать тип MyColor (мой цвет) со значениями myRed, myGreen и myBlue (мой красный, мой зеленый, мой синий). Это делается совсем просто:

Type MyColor = (myRed, myGreen, myBlue); .

В этой строке объявлены четыре новых идентификатора: MyColor, myRed, myGreen и myBlue. Идентификатором MyColor

обозначен порядковый тип, следовательно, в синтаксисе Object Pascal можно применять этот идентификатор везде, где разрешены перечислимые типы. Остальные три идентификатора — это значения типа MyColor. Подобно символьным и булевым типам перечислимые типы не являются числами, и использовать их наподобие чисел не имеет смысла. Однако перечислимые типы относятся к порядковым, так что значения любого такого типа упорядочены. Идентификаторам в списке присваиваются в качестве порядковых номеров последовательные числа. Первому имени присваивается порядковый номер 0, второму — 1 и т.д.

Действительные типы

287

В переменных действительных типов содержатся числа, состоящие из целой и дробной частей. В Delphi определено шесть действительных типов. Все типы могут представлять число 0, однако они различаются пороговым (минимальным положительным) и максимальным значениями, которые могут представлять, а также точностью (количеством значащих цифр) и объемом. Действительные типы описываются в табл. 1.

Таблица 6.1. Действительные типы

Тип

Диапазон значений

Количество

Объем

значащих цифр

(байт)

 

 

 

 

 

 

Real

5.0E-324..1.7Е308

15-16

8

 

 

 

 

Extended

3.6E-4932 ..1.1E4932

19-20

10

 

 

 

 

Currency

-922337203685477.5808..

19-20

8

..922337203685477.5807

 

 

 

 

Строковый тип

В Delphi для обозначения строкого типа допускается, пришедшее из Pascal, название String. Тип String — это статически размещаемые в памяти компьютера строки длиной от 0 до 255 символов. Первый его элемент задает динамическую длину строки, которая может принимать значения от 0 до 255 символов.

Переменные и константы Переменная — это ячейка памяти компьютера, в которой на-

ходятся данные. Чтобы программа могла обратиться к переменной (получить данные для расчета, запомнить результат вычислений), переменная должна иметь имя. Имена переменных составляют из последовательности букв латинского алфавита, цифр и некоторых специальных символов. Первой в имени обязательно должна быть буква. Пробел в имени переменной использовать нельзя. Прописные и строчные буквы в именах переменных компилятором Object Pascal не различаются. Имена переменных желательно задавать так, чтобы они соответствовали логическому смыслу переменной. Например: Summa, x1, skidka. Все переменные должны быть описаны в разделе описания переменных (Var). Например:

Var Summa : Integer;

Skidka : Real;

Flag : Boolean;

288

Константы подразделяются на обычные и именованные. Обычная константа представляет собой целое или дробное число, строку символов или отдельный символ, логическое значение. Числовые константы могут выглядеть в программе так:

45

0.001

3.14 -347 0

-1.2456000000E+06 // запись в форме с плавающей точкой. Строковые и символьные константы заключаются в апостро-

фы. Примеры строковых и символьных констант: ′Язык программирования Object Pascal′

′3,14′

′e′

Логическая константа может принимать только одно значение из двух: ложь (False) и истина (True).

Именованная константа описывается в разделе описания констант и в программе используется уже ее имя. Например,

Const Bound =10; Flag = True;

Pi = 3.1415926;

W = ′ WORD′; .

Оператор присваивания

Вобщем виде оператор присваивания выглядит так: <Имя переменной >:= <Выражение>; .

Врезультате выполнения оператора присваивания переменная, стоящая в левой части, получает значение выражения, стоящего справа (часто формула).

Пример: Skidka := 12.5; Flag := False; S:=1/2*a*b; .

Выражение состоит из операндов и операторов. Операндами обычно бывают переменные, константы, функции. Операторы находятся между операндами и обозначают действия:

+ сложение - вычитание

289

* умножение / деление

DIV деление нацело

MOD остаток от деления нацело Примеры выражений: A+B/C+0.1*C

Summa*0.85 Cena MOD 100

Структура программы на языке Delphi

Исходный текст программы состоит из последовательности строк, в которой строка может начинаться с любой позиции. Структурно программа состоит из заголовка и блока. Заголовок находится в начале программы и имеет вид:

Program <Имя программы>; .

Блок состоит из двух частей: описательной и исполнительной. В описательной части содержится описание элементов программы, в исполнительной части указываются действия с различными элементами программы, позволяющие получить требуемый результат.

В общем случае описательная часть состоит из следующих разделов:

подключения модулей;

объявления меток;

объявления констант;

описания типов данных;

объявления переменных;

описания процедур и функций.

В конце каждого из перечисленных разделов указывается точка с запятой.

Структуру программы в общем случае можно представить следующим образом:

Program <Имя программы>; Uses <Список модулей>; Label <Список меток>; Const <Список констант>; Туре <Описание типов>;

Var <Объявление переменных>; <Описание процедур>;

290

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]