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

Шпаргалка К Экзамену По Информатике Для Дневников (Шелудченко А. Г

.).doc
Скачиваний:
12
Добавлен:
07.10.2014
Размер:
297.47 Кб
Скачать

1Общие сведения об языке Бейсик. Области применения for Application, VB Active, ActiveX, VB.net. В Windows, программы имеют стандартный интерфейс пользователя. Это означит пользователи потратят больше времени на работу с приложением и меньше на изучение меню, диалоговых панелей и комбинаций клавиш. До появления Visual Basic в 1991 году разработка приложений Windows была намного тяжелее процесса создания приложений для DOS. С Visual Basic программирование в Windows не становится более эффективным, но оно становится более простым. Язык программирования Visual Basic является основой не только системы программирования, его версия - язык программирования Visual Basic for Application является общей платформой для создания Windows-приложений в среде Microsoft Office, a Visual Basic Scripting Edition (VBScript) используется для написания сценариев. Средства доступа к данным позволяют создавать базы данных, приложения предварительной обработки данных и расширяемые компоненты обслуживающих узлов (серверов) для большинства форматов баз данных, включая Microsoft SQL Server и других баз данных предметного уровня. Технология ActiveX позволяет использовать в документах функции, предоставляемые другими приложениями (например, Word, Excel и т.д.) и отображать их с помощью браузеров. Поддержка Internet позволяет создавать приложения для Intemet-сервера и обеспечивает доступ к сетевым документам.

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

Работа по решению прикладной задачи на компьютере проходит через след. этапы: 1)постановка задачи; 2)математическая формализация; 3)построение алгоритма; 4)составление программы на языке программирования; 5)отладка и тестирование программ; 6)проведение расчётов и анализ полученных результатов. На этапе постановка задачи должно быть четко определено, что дано, и что требуется найти. Так, если задача конкретная, то под постановкой задачи понимают ответ на два вопроса: какие исходные данные известны и что требуется определить. Если задача обобщенная, то при постановки задачи понадобится ещё ответ на третий вопрос: какие данные допустимы. Т.о. постановка задачи включает в себя следующие моменты: сбор информации о задаче, формулировку условия задачи, определение конечных целей решения задачи, определение формы выдачи результатов, описание данных(их типов, диапазонов величин, структуры). На втором этапе дается математическое описание задачи, т.е строится система математических соотношений – формул, уравнений, неравенств и т.п., отражающих существенные св-ва объекта или явления. Такой набор называется математической моделью. Но не всегда можно найти формулы, явно выражающие искомые величины через данные. В таких случаях используются математические методы, позволяющие дать ответы той или иной степени точности. Итак, создавая математ.модель для решения задачи, нужно выделить предложение, на которых будет основываться матем.модель; определить что считать исходными данными и результатами; записать матем.соотношения, связывающие результаты с исходными данными. На этапе алгоритмизация осуществляется переход от матема.модели к расчётной схеме. Для этого может быть использован зык блок-схем или какой-либо псевдокод. Разработка алгоритма включает в себя выбор метода метода проектирования алгоритма; выбор формы записи алгоритма; выбор тестов и метода тестирования; проектирование самого алгоритма. Первые три этапа – это работа компьютера. Четвертый этап – собственно программирование на определенном языке в определенной системе программирования. Программирование включает в себя след. виды работ: выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке программирования. На пятом тапе проводится испытание работы программы и исправление обнаруженных при этом ошибок, т.е. отладка программы. Обнаружить ошибки помогает сама система программирования. Пользователь получает сообщение об ошибке, исправляет её и снова повторяет попытку исполнить программу. Проверка правильности алгоритма производится с помощью тестов. Тест – это конкретный вариант значений исходных данных, для которых известен ожидаемый результат. На тестах проверяется правильность реализации программой запланированного сценария. Т.о.этот этап включает в себя синтаксическую отладку; отладку семантики и логической структуры программы; тестовые расчёты и анализ результатов тестирования; совершенствование программы. На шестом этапе проводятся расчёты по разработанной программе для получения искомых результатов. Проводится анализ результатов решения задачи и в случае необходимости – уточнение матем.модели

3Методы программирования (структурное, модульное, объектно-ориентированное). Сводится к следующему: создание интерфейса: объектов управления и контроля (пользовательские меню); установка свойств объектов; написание процедур, используемых при вызове объектов.

Visual Basic является объектно-ориентированным языком программирования (ООП). ООП — это современньш стиль в разработке программ.Этот стиль базируется на следующих требованиях к компьютерным программам, они должны быть: проверяемыми; легко модернизируемыми; многократно используемыми; переносимыми. В объектно-ориентированной среде с любым объектом сопоставляется определённая совокупность действий. Выбор из этой совокупности действий (методов), необходимого в данный момент действия, определяется поставленной целью.

Программный объект обладает определёнными свойствами и методами. Свойства — это видимые характеристики объекта, а методы — это операции преобразования этих данных(налример свойство Value текстового окна — это текст, который вводится в это окно, свойство Color управляет цветом шрифта, а свойство Enabled — возвращает или позволяет задать значение разрешающее или запрещающее объекту реагировать на события, вызванные действиями пользователя).

4. Классификация языков программирования.

Программа – один из способов записи алгоритма по правилам какого-либо языка программирования. Традиционно под программой понимаю последовательность команд, выполняемых компьютером. Такой стиль программирования принято называть императивным. В этом стиле программист должен объяснить компьютеру как нужно решать задачу. Противоположный ему стиль программирования – декларативный, здесь программа – это совокупность утверждений, описывающих фрагмент предметной области или сложившуюся ситуацию. В этом стиле программист должен описать что нужно решать. Соответственно и языки программирования можно поделить на императивные и декларативные. Императивные языки основаны на фон Нейманской модели вычислений компьютера. Тут программист сначала создает модель в некой формальной системе, а затем переписывает решение на императивный язык в терминалах компьютера(например: Паскаль, Бейсик, Си и т.д.) В декларативных языках человек лишь описывает решаемую задачу, а поиском решения занимается система программирования. Здесь более высокая скорость разработки приложений, меньший размер кода и более понятные программы. (например: Пролог). Есть классификация языков программирования по их близости либо к машинному языку(языки низшего уровня), либо к естественному человеческому языку(языки высокого уровня). Машинно-ориентированные языки включают в себя машинные коды и язык Ассемблер. Ассемблер – это символическое представление машинного языка. Программирование на нём - это «программирование на низком уровне». Машинно-независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они называются «высокоуровневыми языками программирования» (ЯПВУ). Язык высокого уровня не понятен компьютеру, поэтому существуют специальные программы-трансляторы, переводящие операторы ЯПВУ в машинные коды. Сущ. Два типа программ-трансляторов: 1) Интерпретатор – он работает с исходным модулем по шагам. При этом он разбирает каждый оператор исходного модуля и выполняет его. В этом режиме проще отлаживать программу, но так медленнее. 2)Компилятор – он работает сразу со всем исходным модулем, перводя его на машинный язык и формируя на его основе загрузочный модуль, т.е. исполняемый файл, готовый для выполнения на компьютере. Типы машинно-независимых языков: 1)проблемно-ориентированные языки – это языки ориентированные на решение определенных проблем, обеспечивающие программисту средствами, позволяющими коротко и чётко формулировать задачу и получать результаты в требуемой форме.(Липс, Снобол,Сленг,Simula). 2)Универсальные языки – это языки созданные для широкого круга задач: коммерческих, научных, моделирования и т.д. (PL-1,Паскаль идр.). 3)Диалоговые языки – программные средства, обеспечивающие оперативное взаимодействие человека с компьютером. В памяти сохраняется копия исходной программы даже после получения объектной программы в машинных кодах. При внесение изменений в программу система программирования с помощью спец. таблицы устанавливает взаимосвязь структур исходной и объектной программ. (Бейсик,Си и др.)

5. Системы программирования. Система программирования – это система для разработки новых программ на конкретном языке программирования. В них входят: 1)компилятор и интерпретатор; 2)интегрированная среда разработки; 3)Средства создания и редактирования текстов программ; 4)обширные библиотеки стандартных программ и функций; 5)отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе; 6)«дружественная» к пользователю диалоговая среда; 7)многооконный режим работы; 8)мощные графические библиотеки; утилиты для работы с библиотеками; 9)встроенный ассемблер; 10)встроенная справочная служба. Популярные системы программирования – Turbo Basic, Quick Basic, Turbo Pascal, Turbo C. Получили распространение системы программирования, ориентированные на создание Windows-приложений: 1)Borland Delphi – наследник семейства компиляторов Borland Pascal; 2) Microsoft Visual Basic – удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств; 3) Borland С++ - средство для разработки Dos и Windows-приложений.

6Методика программирования на Visual Basic . Понятия объекта, события, свойства и метода. Сводится к следующему: создание интерфейса: объектов управления и контроля (пользовательские меню); установка свойств объектов; написание процедур, используемых при вызове объектов. Visual Basic является объектно-ориентированным языком программирования (ООП). ООП — это современньш стиль в разработке программ.Этот стиль базируется на следующих требованиях к компьютерным программам, они должны быть: проверяемыми; легко модернизируемыми; многократно используемыми; переносимыми. В объектно-ориентированной среде с любым объектом сопоставляется определённая совокупность действий. Выбор из этой совокупности действий (методов), необходимого в данный момент действия, определяется поставленной целью. Программный объект обладает определёнными свойствами и методами. Свойства — это видимые характеристики объекта, а методы — это операции преобразования этих данных(налример свойство Value текстового окна — это текст, который вводится в это окно, свойство Color управляет цветом шрифта, а свойство Enabled — возвращает или позволяет задать значение разрешающее или запрещающее объекту реагировать на события, вызванные действиями пользователя). Принципы (ООП) Понятие контейнера. В основе ООП лежат три принципа:

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

Принцип наследования состоит в том, что подклассы принадлежащие определённым классам наследуют их данные и методы обработки. Полиморфизм обеспечивает способность объекта реагировать на запрос сообразно своему типу. ООП максимально использует принцип модульности программ. Модульные программы состоят из отдельных относительно самостоятельных частей — модулей. Каждый модуль выполняет специфические, строго определённые функции преобразования и имеет доступ только к тем данным, которые необходимы для этого преобразования. Код модуля, разработанный со строго определённым интерфейсом для других модулей программы, лёгок для отладки, сопровождения и понимания. Другой аспект модуля его замкнутость: изменения вносимые в код модуля влияют только на

функции этого модуля и не приводят к ошибкам в работе других модулей.

7Visual Basic Объектно-ориеитированный язык программирования. Принципы (ООП) Понятие контейнера. В основе ООП лежат три принципа:

инкапсуляции, наследования и полиморфизма.

Принцип инкапсуляции предполагает сочетание структур данных с методами их обработки. Принцип наследования состоит в том, что подклассы принадлежащие определённым классам наследуют их данные и методы обработки. Полиморфизм обеспечивает способность объекта реагировать на запрос сообразно своему типу. ООП максимально использует принцип модульности программ. Модульные программы состоят из отдельных относительно самостоятельных частей — модулей. Каждый модуль выполняет специфические, строго определённые функции преобразования и имеет доступ только к тем данным, которые необходимы для этого преобразования. Код модуля, разработанный со строго определённым интерфейсом для других модулей программы, лёгок для отладки, сопровождения и понимания. Другой аспект модуля его замкнутость: изменения вносимые в код модуля влияют только на функции этого модуля и не приводят к ошибкам в работе других модулей. Программный объект в ООП называется «контейнером». Контейнер включает в себя данные и программный код, который знает, как манипулировать с этими данными. В традиционном программировании

блоки данных передавались от модуля к модулю и каждый модуль использовал их своим способом. Если передавались неверные данные, то они всё равно обрабатывались, что приводило к неверным результатам. В ООП данные и код объединены в объекте, данные не передаются, а объект, получив сообщение, выполняет или не выполняет преобразование над включёнными в него данными. Примером объектов в VBA и Excel могут служить: Рабочие книги, рабочие листы, таблицы, ячейки, диаграммы, текстовые окна. ООП изменило само понятие «документ», под документом теперь понимают объект, состоящий из данных разного типа и программ, их обрабатывающих.

8Среда разработки VB. Окно проекта, окно формы, панель инструментов формы, окно свойств, окно программного кода. При запуске Visual Basic его первый экран будет выглядеть так, как на рис. 1. В диалоговой панели New Project, показанной на рис. 1, следует дважды щелкнуть на значок Standard EXE (она первая на рисунке). Программа тут же перейдет в режим, показанный на рис. 2. Отметим, что пустое окно носит имя Projecti-Forml (Form). Внутри него находится другое окно с названием Forml, в котором видна сетка из точек. Приложение - это набор инструкций, заставляющий компьютер выполнять задачу. Структура приложения - это метод организации инструкций, т.е. Место их хранения и порядок их выполнения. Приложение Visual Basic основано на объектах, поэтому структура программы близко моделирует его физическое представление на экране. Экранная форма является представлением свойств, которые определяют её вид на экране и внутреннее поведение. Для каждой формы в приложении существует связанный с ней модуль формы, который хранится в файле с расширением FRM и содержит её код. Каждый модуль формы содержит процедуры обработки событий - раздел кода, который выполняется в ответ на определённые события. Для каждого элемента управления формы существует соответствующий набор процедур обработки событий в модуле формы. Код не связанный с конкретной формой или элементом управления, помещается в стандартный модуль, хранимый в файле с расширением BAS. Код приложения Visual Basic имеет иерархическую структуру. Типичное приложение состоит из одного или более модулей: модуль формы, необязательные стандартные модули для совместного использования и необязательные модули класса. Каждый модуль содержит одну или более процедур, которые могут включать процедуры обработки событий, процедуры Sub и Function и процедуры Property (свойство). Простая экранная форма - приветствие приведена на рисунке. В этом окне имеются три объекта: кнопка ОК, надпись "Здравствуй друг!" и рисунок. В VBA экранная форма хранится в отдельном файле, имя которого имеет расширение frm. Общий вид экранной формы представлен на рисунке. Программный модуль, относящийся к данной экранной форме, хранится в файле с расширением bas и для нашего примера выглядит так: Private Sub КомандааяКно1ша_Спск() MsgBox "Здравствуй, друг!", 64, "Приветствие" End Sub

9Алфавит языка. Пример записи операторов кода в модуле. Как и любой другой язык, Visual Basic имеет свой алфавит. В него входят:

  • прописные и строчные буквы латинского алфавита: А, В,..., Z, a, b,...,z;

  • прописные и строчные буквы кириллицы (А—Я, а—я);

  • цифры от 0 до 9;

  • символ подчеркивания «_»;

  • не изображаемые символы («обобщенные пробельные символы»);

  • специальные символы, участвующие в построении конструкций языка: +, -,*,/, V ", =,>,<,[,],(,),., {,},'Д,@; составные символы, воспринимаемые как один символ: <=,>=,<>;

При запуске Редактора кода (Code Editor) появляется окно, в котором

можно вводить текст программы.

Так как работа с программным кодом осуществляется в модулях, то для

каждого модуля, выбранного в проводнике проекта (Project Explorer),

создаётся отдельное окно. Код внутри модуля разделён на отдельные

секции, для каждого объекта, содержащегося в модуле.

При записи текста модуля могут встречаться длинные строки, их можно

разбить на несколько строк, для этого используется символ пробела за

которым следует символ подчёркивания. Пример:

DataRecord = "SELECT * From Titles, Publisher" _

6 "WHERE Publishers.PublD = Titles.PubID" _ & "AND Publishers. State = 'CA'

При записи нескольких операторов в одну строку, они разделяются

двоеточием. Пример:

Textl - "Hello" : Red = 255 : TextLBackColor = Red

10Лексемы языка Бейсик. Шесть классов лексем языка. Правила записи имен в языке. Соглашение по стилю имен. Лексема — это единица текста программы, которая имеет определенный

смысл для компилятора и которая не может быть разбита в дальнейшем.

В Visual Basic различают шесть классов лексем:

-свободно выбираемые и используемые идентификаторы;

-служебные (зарезервированные) слова;

-константы;

-строки (строковые константы);

-операции (строки операций):

-разделители (знаки пунктуации).

Существуют соглашения по стилю имен, которых желательно

придерживаться:

• идентификатор должен понятным образом отражать назначение переменной, это правило способствует пониманию программы;

  • лучше использовать имена из строчных букв, в случае составных имён нужно отделять друг от друга составляющие их слова подчеркиванием или начинать новое слово с прописной буквы;

  • имена из прописных букв используются для определения констант;

• название идентификатора может содержать суффикс, который указывает на тип данных, связанный с этим идентификатором.

Visual Basic накладывает на имена следующие ограничения:

  • имя должно начинаться с буквы;

  • имя не должно содержать точек, пробелов, разделительных символов, знаков операций, а также специальных символов;

• имя должно быть уникальным, оно не должно совпадать с зарезервированными словами Visual Basic или с другими именами;

• длина имени может включать до 255 символов, но следует иметь в виду, что Visual Basic учитывает только первые 40 символов от начала имени.

11Тины переменных в языке VB. Суффиксы, определяющие тип переменной. Типом данных называется способ хранения и представления данных в

компьютерной системе.

В языке VB различают 11 типов переменных;

Целое число (Integer) - занимает два байта памяти;

Длинное целое (Long) - занимает четыре байта памяти;

Короткое целое (Byte) - всего 256 значений, длина 1 байт;

Десятичное число обычной точности (Single) - 4 байт;

Десятичное число двойной точности (Double) - 8 байт;

Десятичное протяжённое число (Currency) - 8 байт, 15 знаков слева от

десятичной точки, до 4 знаков справа;

Логическая переменная (Boolean) - 2 байта 2 значения - True, False;

Дата (Date) - 8 байт;

Объект (Object) - 4 байта, значением является ссылка на объект,

например на элемент экранной формы;

Строка (String) - текстовая переменная, длина зависит от числа

символов в строке;

Произвольное значение (Variant) - по существу типом не является, такая

переменная может иметь любой тип.

Суффиксы, определяющие тип, бывают у 6 из 11 типов переменных:

Integer - %, Long - &, Single - !, Double - #, String - $, Currency - @.

12Описание переменных в языке VB, примеры. Явное и не явное описание переменных. Переменные — это объекты, предназначенные для хранения данных. В разные моменты времени переменные могут хранить различные значения. В переменных можно запоминать какие-либо значения и извлекать их из них. Имя переменной представляет логический уровень. Оно однозначно связывает переменную с некоторой физической областью памяти. В VB используют строковые переменные. Различают строки переменной и фиксированной длины. Строки переменной длины могут содержать до двух миллионов символов. Строка фиксированной длины — это строка постоянного размера, указанного при объявлении переменной. Если значение, которое присваивается больше, то лишние символы отбрасываются. Строковые переменные фиксированной длины должны декларироваться явно. Пример 1:

Dim strMyName As String *20 'объявляется строковая переменная 'фиксированной длины в 20 символов или

OpDim intLen As integer 'объявляется целочисленная переменная Private Sub Form_Load 0

intLen = 30' инициализация значения целочисленной переменной End Sub

Private Sub contmandl_clickQ

Dim MyName As String * intLen 'объявляется строковая переменная длиной в 30 символов MyName = « Петров»

End Sub

Пример 2:

Option Explicit 'запрещение запуска программы при наличие в ней

неописанных переменных

Dim intMyNumber As integer 'Явное объявление переменной

Defint I 'неявное объявление переменных, имена начинающиеся с этой

буквы, будут иметь объявленный тип

IntMyNumber - 10 'для явно декларированной переменной ошибки не

будет

intMyNum =10 'при ошибочном указании имени option explicit включит

предупреждение об ошибке

intNumber = 6 'для неявного декларирования переменной будет выдано

сообщение об ошибке.

Операторы объявления типа: Defint, Deflng, Defsng, Defdbl, Defcur,

Defstr, Defbyte, Defbool, Defdate, Defobj, Defvar.

Примеры декларации переменных:

Dim x As Integer, strName$, Lng01d&

Dim у As Integer

Dim x As Integer, Birds%

130бласть видимости переменных. Динамические и статистические переменные (Dim, Private, Publik, Statik). Область видимости переменной задается при ее декларации одним из ключевых слов:

Dim — объявляет локальные переменные, существующие только во время вызова процедур или функций, в которых они объявлены. Если переменная объявляется в разделе глобальных переменных, объявлений модуля или формы, то она доступна для всех процедур и функций этого модуля. Для других модулей она будет не видна; Private — не может объявлять переменную внутри процедуры или функции. Локальная переменная Private доступна всем процедурам одного модуля, но не доступна из других модулей. При объявлении переменных в разделе общих объявлений модуля Dim и Private равнозначны;

Public — объявленная таким образом переменная является глобальной на уровне приложения и доступна из всех его модулей. Различают динамические и статические переменные. Статические переменные объявляются внутри процедуры или функции и вне них не доступны. Для создания статической переменной необходимо при ее объявления вместо ключевого слова Dim указать слово Static: Static intNumber As Integer

Значения локальных переменных, объявленных словом Static, сохраняются в течении всего времени выполнения приложения в отличие от переменных типа Dim, которые существуют только в течении выполнения процедуры

14Запись константы в языке VB. Предопределенные константы и константы, создаваемые пользователем. Определение назначения констант с помощью Object Browser. Примеры использования констант. Константы — это объекты, значения которых остаются постоянными и не могут быть изменены во время выполнения программы. Константы могут быть именованными и неименованными. Синтаксис языка определяет три типа констант: символьные, целые и вещественные. Символьная константа служит для изображения отдельных знаков и представляет собой лексему, состоящую из символа(или любой последовательности символов), заключенного в кавычки. Например, «Р», «Program», «3.14»,«+» — неименованные символы константы. Синтаксисом языка предусмотрены десятичные, шестнадцатеричные, восьмеричные целые константы. Целая десятичная константа представляется десятичным целым числом: 44,684, 0, 1278 — неименованные десятичные целые константы. Вещественные константы представляются в памяти ЭВМ в форме числа с плавающей точкой. Вещественная константа состоит из следующих частей: -целая часть (десятичная целая константа); -десятичная точка;-дробная часть( десятичная целая константа); -признак показателя «е» или «Е»;-показатель (десятичная целая константа):44., 3.24879,44еО, .314159Е1. Различают встроенные константы УВ{предопределённые константы) и создаваемые пользователем. Встроенные в Visual Basic константы имеют префикс vb. Встроенные константы определены в разделах справки для этих функции. Для того чтобы узнать конкретное значение константы, можно воспользоваться окном «Object Browser» (обозреватель объектов), которое вызывается клавишей [F2] или щелчком на соответствующей кнопке панели инструментов. После выбора константы ее значения и описание функции появляются в текстовом поле в нижней часПримеры использования предопределенных констант: MsgBox «текстовое сообщение», vblnformation MsgBox «нет данных для pac4era»,vbExclamation (экслёмэйшин - восклицание). Для определения констант служит ключевое слово Const. Синтаксическая конструкция для декларирования констант напоминает оператор для декларации переменной и имеет вид: [Public/Private] const имя_ константы[А8 тип]= значение например: Const PI As Single = 3.14 15 'объявлена именованная числовая константа для значения числа Pi. ти окна «Object Browser».

15Встроенные функции Visual Basic. Встроенные функции VB обеспечивают сложные виды обработки данных, избавляя пользователя от разработки собственных программ. В VB используется несколько категорий встроенных функций. Это — математические, строковые, функции даты и времени, функции преобразования типов и файловые.

Chr( 10) — переход на начало строки.

Математические:

Sin(a), Cos(a), Tan(a), Atn(a) — тригонометрические функции;

Sqr(a) — корень квадратный из числа;

Log (a) — логарифм натуральный;

Ехр(а) — показательная функция;

Abs(a) — абсолютное значение;

htt(a) — округление до ближайшего меньшего целого;

Sgn(a) — знак числа;

Fix(a) — округление путём отсечения дробной части;

Randomise — генератор случайных чисел;

Rnd() — случайное число в интервале [0,1]. Строковые:

Len(Str$) — определение длины строки; Left(Str$,x) — выделение из

строки х символов слева;

Right(Str$,x) — выделение из строки х символов справа;

Mid(Str$,x,y) — выделение из строки у символов начиная с номера х.

Функции преобразования типов:

Val(Str$) — преобразует строковое значение в число;

Str(x) — преобразует число в строковое значение;

Chr(x) — преобразует числовой код в символ;

СЬт( 13) — перевод каретки;

16Запись арифметических выражений в языке Visual Basic. Приоритет операций. Арифметическое выражение – это последовательность чисел, констант, переменных, функций и арифметических выражений, заключённых в круглые скобки, которые соединены между собой знаками арифметических операций. Таких операций 8. Вычисления производятся в соответствии с приоритетом: 1) А^B; 2) –A; 3)A*B, A/B; 4)A\B; 5)A Mod B; 6)A+B, A-B. Для операции 34\5 результат равен 6, а для (34 mod 5) результат 4. Взятие стандартной функции имеет наивысший приоритет. Чтобы изменить последовательность выполнения операций используют круглые скобки.

17Программирование линейного вычислительного процессора. Пример вычисления по формуле. При программировании часто приходится выводить информацию непосредственно на форму с помощью метода Print. Синтаксис оператора вывода следующий:

Имя_объекта.Print Список_вывода

При каждом последующем вызове метода Print элементы списка вывода печатаются с новой строки. Для того чтобы пропустить строку, необходимо указать Print без параметров. Однократным вызовом метода Print можно напечатать несколько значений. В качестве разделителей элементов используются запятые и точки с запятой. При использовании точки с запятой элементы выводятся через один пробел, а если одно значение отделяется от другого запятой, то оно будет напечатано в следующей колонке (ширина каждой колонки – 14 символов). Результатом работы оператора:

Print "x="; x, "y=";y

при x=1.56, y=-45.897 будет:

x= 1.56 y= -45.897.

Строковые константы записываются в кавычках и служат, в основном, для комментирования данных.

В ситуации, когда необходимо продолжать печатать значения в той же строке, вызывая новые методы Print, в конце оператора также следует ставить точку с запятой (или запятую). Совместно с методом Print можно использовать функцию Spc(n), задающую количество пробелов перед печатаемым значением, и функцию Tab(n), указывающую позицию вывода. Например, следующие операторы:

Print Tab(21); "Результат" и Print Spc(20); "Результат"

При выводе результата можно использовать функцию Format(expression, fmt), где expression – форматируемое численное выражение, fmt – последовательность символов, определяющих отображение expression. Например, если надо вывести на печать объем V c 3 цифрами в дробной части, оператор записи результата в текстовое поле Текст3 будет выглядеть так: Текст3.Text = Format ( V, "##.###"). Символ "#" используется для задания количества значащих цифр в целой и дробной части выводимого числа. При V= 6.12874 в текстовое поле будет записано 6.129

18Разработка приложения «Калькулятор»Рассмотрим стандартное приложение Windows — Калькулятор. Калькулятор предназначен для выполнения математических вычислений — от самых простых, в одно-два действия, до сложных инженерных расчетов. Окно приложения Калькулятор может находиться в одном из двух состояний: обычный Окно приложения Калькулятор очень похоже на настоящий калькулятор. Научиться считать на нем несложно. Арифметические примеры можно вводить, нажимая соответствующие кнопки Калькулятора, или клавиши алфавитно-цифровой части клавиатуры, или с дополнительной клавиатуры при включенном режиме Num Lok (вы помните, что этот режим включается нажатием клавиши <Num Lok >; при этом загорается одноименный световой индикатор).

Рассмотрим окно Калькулятора в обычном состоянии (рис. 1).

 В центре расположены кнопки с цифрами (от 1 до 9) и кнопки   +  / -  (смена знака числа) и   ,  (запятая).

Справа расположены кнопки вычисления некоторых функций, с которыми вы познакомитесь в старших классах, кнопка результата =, а также кнопки со знаками арифметических действий:

/  — деление;

* - умножение;

-  — вычитание;

+  — сложение.

Вверху расположены кнопки:

( Backspace) — стирает последнюю цифру набранного числа;

(СЕ) - стирает последнее набранное число;

(С) - стирает результат предыдущих вычислений (он не виден на экране, но Калькулятор его "помнит"), записывает число 0 в строку ввода и подготавливает Калькулятор к новому вычислению.

Слева расположены кнопки:

MS  — сохраняет число в памяти (записывает набранное число или результат вычислений в память);

MR — вызывает число из памяти (записывает в строку ввода число, хранящееся в памяти; при этом оно остается записанным и в памяти);

MC  — очищает память (удаляет число, хранящееся в памяти, и записывает в память число 0);

М+ — прибавляет число из строки ввода к числу, хранящемуся в памяти, и сохраняет результат в памяти. Число в строке ввода не изменяется.

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

! Окно, в котором в данный момент времени пользователь выполняет какие-то действия, называется активным.

Переключаться между окнами удобно, нажимая кнопки со значками приложений, расположенные на Панели задач.

Предположим, что вам надо рассчитать, сколько денег понадобится на покупку компьютера. Стоимость каждого устройства компьютера можно записать в приложении Блокнот, а рассчитать стоимость покупки — в приложении Калькулятор (рис. 3).

Перенести результат вычислений в Блокнот можно с помощью буфера обмена Windows.

19Разработка приложения «Переключатели и флажки»

Нужно точно представлять, что и куда применять. Флажки используются, когда имеется возможность выбрать любую комбинацию опций. Если требуется выбрать только один вариант из небольшого количества (до 5-7 штук) используют переключатели. Для большего количества вариантов, из которых нужно выбрать только один или случая, когда количество вариантов неизвестно надо применять списки. Старайтесь делать так, чтобы не было списков в 2 пункта и переключателей в 25. Есть ещё один вид списков, который имеет возможность выбрать несколько вариантов. Он обычно оформляется как список, в котором одновременно видно несколько вариантов и полосой прокрутки для просмотра всех имеющихся вариантов. Не забывайте к таким спискам добавлять кнопки «Выделить все» и «Убрать выделение».

20Понятие алгоритма. Св-ва алгоритма. Способы описания алгоритма. Примеры.

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

Свойства алгоритма: дискретность, детерминирован-ность, результативность, массовость.

Алгоритм может задаваться одним из следующих способов: Путём словесного или словесно-формульного описания на естественном языке; На языке блок-схем;На одном из алгоритмических языков.

Словесный алгоритм: подойти к пешеходному переходу, посмотреть на сигнал светофора, на зелёный - начать переход, на красный – остановится, на жёлтый ждать переключения сигнала.

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

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

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

21Основные структуры алгоритмов. Язык блок-схем. Элементы, правила составления.

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

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

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

Блок - конец/начало, используется для обозначения конца или начала алгоритма

Блок – процесс, используется для обозначения действия приводящего к получению единственного результата

Блок – решение, используется для обозначения разветвляющегося действия (проверки условия)

Блок – данные, используется для обозначения операций ввода/вывода

Блок – подготовка (модификатор), используется для обозначения заголовка цикла

Блок – типовой процесс, используется для обозначения подпрограммы, фрагмента алгоритма

Соединитель, ставится в разрыв линии связи

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

Блок-схемы алгоритмов, как и любая техническая документация должны соответствовать требованиям стандартов.

При изображении блок-схем, все элементы должны иметь одинаковые геометрические размеры (например соотношение высоты и ширины 1:3); вертикально и горизонтально все элементы должны располагаться на одной прямой, т.е. вписываться в регулярную сетку по горизонтали и по вертикали; линии связей не должны иметь множество пересечений, лучше использовать разрыв с элементом соединитель, который ставится в месте выхода и в месте входа линии связи; текст пояснений внутри блоков записывается на естественном языке или с помощью математических формул.

22Алгоритм и программа решения квадратного ур-ния.

Private Sub Комманда1_Click()

a = Val(Текст1)

b = Val(Текст2)

c = Val(Текст3)

Текст4 = " " :Текст5 = " "

If a <> 0 Then

d = b * b - 4 * a * c

If d > 0 Then

x1 = (-b + Sqr(d)) / 2 / a: x2 = (-b - Sqr(d)) / 2 / a

Текст4 = "x1=" & Str(x1):Текст5 = "x2=" & Str(x2): GoTo1

Else

Текст4 = «Действит. корней нет": GoTo 1

End If

End IfIf b <> 0 Then

x = -c / b: Текст4 = “корень=“ & Str(x): GoTo 1

End If

If c <> 0 Then Текст4 = “Нет решения” Else Текст4 = “Мн-во решений”

1: End Sub

23) Программирование разветвляющихся процессов. Две формы условного оператора.

В VB есть два типа условного оператора –односрочный (линейный) и многострочный (блочный).

Линейный оператор имеет две формы – безальтернативную и альтернативную. Безальтернативная форма имеет следующий синтаксис:

If условие Then операторы

Альтернативная форма имеет такой синтаксис:

If условие Then операторы_1 Else операторы_2

Условие является логическим выражением, истинность которого оценивается. После ключевых слов Then и Else может стоять один или несколько операторов. В последнем случае они разделяются двоеточием. При значении условия True выполняют операторы_1, стоящие после ключевого слова Then, если же условие принимает значение False то выполняются операторы_2, следующие за ключевым словом Else или ничего не выполняется. Все описанные параметры данной структуры должны быть записаны в одной строке. Например,

If A =7 Then Beep

If x>0 and x<1 Then y=x^2: z=x+exp(y)

Else y=0 : z=0

В первом примере выдается звуковой сигнал, если переменна А равна 7. Во втором примере, если х принадлежит интервалу (0;1), то вычисляются y=x(в квадрате) и z=x+e (в степене х), в противном случае значения переменных у и z обнуляются.

Блочный оператор IF…Then предоставляет такие же возможности, как и линейный оператор, но, если в зависимости от условия необходимо, выполнить несколько операторов, целесообразно использовать блочный синтаксис. Блочный оператор также может быть безальтернативным и альтернативным. Структура безальтернативного блочного оператора след-я:

If условие Then

Блок операторов

End If

Синтаксис альтерна-го блочного оператора таков:

If условие Then

Блок операторов 1

Else

Блок операторов 2

End If

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

If условие_1 Then

If условие_2 Then

Блок операторов 1

Else

Блок операторов 2

End If

Else

Блок операторов 3

End If

В VB предусмотрена конструкция для работы с несколькими операторами If. Эти операторы применяются в случае, когда необходимо рассмотреть еще несколько условий в дополнение к исходному условию. Для этого служит конструкция If…ThenElseIf. Она позволяет проверить дополнительное условие, если исходное условие принимает значение False. Cинтаксис этого оператора следующий:

If условие_1 Then

Блок операторов 1

Else If условие_2 Then

Блок операторов 2

End If

Блок операторов 3

End If

Например,

If Обращение = 1 Then

Label1.Caption="Глубокоуважаемый господин"

ElseIf Обращение= 2 Then

Label1.Caption="Глубокоуважаемая госпожа"

ElseIf Обращение= 3 Then

Label1.Caption="Глубокоуважаемые дамы и господа"

Else Label1. Caption="Люди"

Для выбора одного из значений в зависимости от выполнения или невыполнения некоторого условия используется условия функция IIf имеющая такой синтаксис:

IIf(условие, значение_1, значения_2)

Эта функция возвращает значение_1,если условие истинно, и значения_2, если условие ложно. Например, Y= IIf(x>0, sin(x), cos(x))

Если х>0, то переменная Yбудет присвоено значение sin(x), в противном случае cos(x).

24) Алгоритм и программа нахождения суммы ряда с заданной точностью.

Для вычесления суммы бесконечного ряда с некоторой заданной точностью ε, где ε -малое положительное число, поступают следующим образом. Вычисляют и суммируют слагаемые до тех пор , пока очередное слагаемое не станет по абсолютной величине меньше ε (такой момент обязательно наступит, т.к каждое последующее слагаемое меньше по модулю предыдущего) Полученную сумму (вместе с последним слагаемым) и принимают за приближенное значение искомой суммы. Вычисление очередного слагаемого (члена ряда) проводится по общей формуле (-1)в степени n+1*1\n в степени 4, где n- номер слагаемого( члена ряда)

Пример:

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

S=1-1\2+1\3+1\4+…

2,3,4( в степени 4). Точное значение этого ряда вычесляется по формуле 7π\720- ( π в 4ой степени)

Программный код для кнопки Расчет:

Private Sub Command1_Click `Кнопка Расчет

Const pi=3.141592653589793

Dim n As Integer, v As Double, s As Double, y As Double, esp As Double

eps=Val(Text1.Text) `заданная точность

n=1 `номер члена ряда

v=1 `член ряда

s=v `искомая сумма

Do While Abs(v) >=eps `продолжать вычисление пока

`v по модулю > =eps

n=n+1 `вычисляется след номер члена ряда

v=(-1)^(n+1)|n^4

` вычисляется следующий член ряда

s=s+v `накапливание суммы

Loop

y=7*pi^4|720 ` точное значение

Text2.Text=n: Text3.Text=v: Text4Text=s

Text5.Text=y

End Sub

25)Оператор Select Case

Еще одним оператором ветвления Visual Basic является Select Case, который позволяет выполнить одну из нескольких групп операторов в зависимости от значения условия.

Инструкция Select Case имеет следующий синтаксис:

Пример:

Private Sub Command1_Click()   nVariable = Int(Rnd * 10) + 1 'случайное число от 1 до 10   Select Case nVariable     Case 1       Print "Равно 1"     Case 2, 3       Print "Равно 2 или 3"     Case 4 То 6       Print "Больше или равно 4 и меньше или равно 6"     Case Is>= 9       Print "Больше или равно 9"     Case Else       Print "Ни одно из предшествующих"   End Select End Sub

26) Объект CheckBox.

Флажки (пользователи часто называют их "галками" или "птичками") и кнопки с фиксацией используются для выбора невзаимоисключающих вариантов (если этих вариантов немного).

У CheckBox есть три главных свойства:

1) Caption — надпись справа от флажка, которая объясняет, что выбирается этим флажком; 2) TripleState — если в False (по умолчанию), то флажок может принимать только два состояния: установлен и нет. Если для TripleState установить значение True, то появляется третье значение: Null, когда установлена "серая галка". Такое значение часто используется, например, при выборе компонентов программы при установке, когда выбраны не все компоненты, а лишь некоторые; 3) Value — само состояние флажка. Может принимать значения True (флажок установлен), False (снят) и Null — "серый флажок" (когда свойство TripleState установлено в True).

Пример:

Private Sub Check1_Click() `Флажок Жирный

If Check1.Value=0 Then

Label1.Font.Bold=False

Else

Label1.Font.Bold=True

End If

End Sub

27) Системная функция: InputBox.

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

InputBox(Сообщение[,заголовок] [,значение] [,Xpos] [,файл справки, контекст])

Сообщение- строковое выражение для отображения в диалоговом окне подсказки пользователю относительно вводимого значения. Максимальная длина текста 1024 символов. Заголовок- строковое выражение, задающее название диалогового окна. Если заголовок опущен, в строку заголовка помещается имя приложения.

Значение-это принимаемое по умолчанию строковое выражение, которое выводится автоматически в текстовом поле. Если этот параметр отсутствует, то поле ввода пустое. Xpos, Ypos- положение окна ввода соответственно по горизонтали и вертикали(в твипах). Если эти параметры отсутствуют, то диалоговое окно помещается в центре окна. Файл справки- строковое выражение, определяющее имя файла, содержащего справочные сведения о данном окне. Контекс – числовое выражение, определяющее номер соответствующего раздела справочной системы. Из перечисленных параметров обязательным является только первый параметр Сообщение, остальные могут отсутствовать. В окне InputBox всегда имеются две кнопки управления: Ок и Саncel. Кнопка Ок подтверждает ввод данных, кнопка Саncel – закрывает диалоговое окно без ввода данных. Результатом вызова функции InputBox является значение типа String, поэтому при вводе чисел необходимо получаемое значение преобразовать в числовой вид с помощью функции Val.

Пример,

X =Val (InputBox( "Введите значение X"))

28) Системная функция: MsgBox.

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

MsgBox Сообщение [, атрибуты] [,заголовок] [, файл справки , контекст]

В квадратных скобках указаны необязательные параметры.

Функция выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата. Синтаксис вызова функции следующий:

переменная = MsgBox( Сообщение [, атрибуты] [, заголовок] [, файл справки , контекст])

Сообщение- строковое выражение , отображаемое как сообщение в диалоговом окне (максимальная длинна текста 1024 символов). В текст в качестве разделителей строк можно вставить перевод каретки Chr(13), возврат строки Chr(10) или их комбинацию( константа vbCrLf). Параметр атрибуты –числовое выражение, которое является суммой значений, определяющих количество и тип отображаемых кнопок, кнопку по умолчанию, тип используемого значка. Если данный параметр не указан, то используемое по умолчанию значение равно 0. Заголовок, файл справки и контекст –параметры, аналогичные параметрам рассмотренным для функции InputBox.

Описание основных констант:

Константа

Значение

Описание

VbOKOnly

0

Кнопка Ок

VbOKCancel

1

Кнопки Ок и Cancel(отмена)

VbAbortRetlyIgnore

2

Кнопки Abort (прервать),Retly(повторить),Ignore (игнорировать)

VbYesNoCancel

3

Кнопки Yes,No и Сancel

VbYesNo

4

Кнопки Yes и No

VbRetlyCancel

5

Кнопки Retry и Cancel

VbCritical

16

Отображается значок критическое сообщения

VbQuestion

32

Отображается вопросительный знак(запрос)

VbExclamation

48

Отображается восклицательный знак (предупреждение)

VbInformation

64

Отображается значок информационного сообщения

VbDefaultButton1

0

По умолчанию активна первая кнопка

VbDefaultButton2

256

По умолчанию активна вторая кнопка

VbDefaultButton3

512

По умолчанию активна третья кнопка

Значение констант можно складывать, чтобы достичь желаемого результата.

Пример, чтобы в окне сообщения присутствовали кнопки OK и Сancel, а также значок информационного сообщения можно использовать любой из вариантов:

Otv= MsgBox( "Работа закончена ", 64+1)

Otv= MsgBox( "Работа закончена ", VbInformation + _ VbOKCancel)

Otv= MsgBox( "Работа закончена ", VbInformation _ VbOKCancel)

If Otv=1 Then

Константа VbInformation означает отображение в окне значка с буквой i. После нажатия на кнопку OK функция

MsgBox приобретает значение константы VbOk, равное 1, а после нажатия на кнопку Cancel -2. Фрагмент If Otv =1 Then… можно перевести так «Если была нажата кнопка Ok, то…» Допустима и такая запись If Otv= VbOK Then… Значения, возвращаемые функцией MsgBox, приведены в таблице.

Константа

Значение

Нажатая клавиша

VbOK

1

Ok

VbCancel

2

Cancel(отмена)

VbAbort

3

Abort(стоп)

VbRetry

4

Retry(повторить)

VbIgnore

5

Ignore(пропустить)

VbYes

6

Yes

VbNo

7

No

В качестве Примера использования окна сообщ-я MsgBox рассмотрим задачу установки пароля для защиты приложения.

p=Text1.Text

If p <> "Parol "Then

MsgBox "Пароль не верный" ,vbCritical , _

"Доступ к приложению"

End

End If

Переход к следующему по порядку оператору произойдет только в том случае, если пользователь введет в поле Text1 правильный пароль. Таким способом можно ограничить доступ только к исполняемому файлу, в противном случае перед запуском программы пароль можно посмотреть в тексте программы. Для того чтобы при вводе пароля в текстовом поле появились звездочки вместо букв необходимо указать символ* в качестве значения сво-ва PasswordChar объекта Text1. Если допущена ошибка при вводе пароля, то появится диалоговое окно MsgBox, и после нажатия на кнопку ОК происходит завершение работы программы.

29)Системные функции: функции RND, Timer, Iif.

Функция RND.

В языке VB есть стандартный датчик случайных чисел RND, который генерирует число в интервале [0;1], таким образом, для получения случайного числа в диапазоне [0;16777215] можно использовать формулу Rnd*16777216 и отбросить дробную часть результата. Итак, алгоритм разработан, можно приступать к записи программного кода. Сделаем двойной щелчок по кнопке Пуск. В результате этого появляется окно программного кода в котором записываем:

Пример

Private Sub Command1_Click() ` Кнопка Пуск

Dim kod As Long

Randomize ` Инициализация генератора случайных чисел

kod=Int (Rnd*16777216)

Text1.Text =kod

Form1.BackColor=Now

`Функция Now возвращает текущую дату и время

End Sub

Функция Timer

В языке VB существует возможность выполнения через одинаковые промежутки времени операция, которые не зависят от действий пользователя во время работы приложения . Для этого используется элемент управления Timer, который позволяет отслеживать интервалы времени, и, будучи включенным ,вызывать событие Timer и выполнять процедуру, связанную с этим событием. Св-во Interval задает кол-во миллисекунд для интервала времени между событиями Timer для таймера и может принимать значения от 0 до 64767 миллисекунд. Реальная частота возникновения события Timer не может превышать 18 раз в секунду, т.к именно с такой частотой система генерирует отсчет времени. Активизация таймера производится установкой значения True св-ва Enabled (доступно). Таймер относится к числу элементов, которые никогда не отображаются на экране в режиме выполнения программы.

Пример

Программный код для таймера , командных кнопок Пуск и Стоп можно записать так:

Private Sub Timer1_Timer ()

Image1..Left =(Form1.Widtt-500)*Rnd

Image1. Top =(Form1.Height-1500)*Rnd

End Sub

Private Sub Command1_Click() ` Кнопка Пуск

Timer1.Enabled= True

End Sub

Private Sub Command1_Click() `Кнопка Стоп

Timer1.Enabled= False

End Sub

Функция Iif.

Для выбора одного из значений в зависимости от выполнения или невыполнения некоторого условия используется условия функция IIf имеющая такой синтаксис:

IIf(условие, значение_1, значения_2)

Эта функция возвращает значение_1,если условие истинно, и значения_2, если условие ложно. Например, Y= IIf(x>0, sin(x), cos(x))

Если х>0, то переменная Yбудет присвоено значение sin(x), в противном случае cos(x).

30) Понятие массива. Описание массивов в vb. Динамические массивы. Переопределение массивов.

В VB различают два вида переменных -простые переменные и переменные структурного типа. Частным случаем переменной структурного типа явл массив. Массив- упорядоченная совокупность данных одного типа, объединенных общим именем. Массив представляет собой множество ячеек памяти для хранения значений, в то время как простая переменная имеет одну ячейку памяти где может храниться только одно значение. Упорядоченность заключается в том, что каждый элемент имеет определенное место в массиве, которое задается индексом массива, т.е его порядковым номером. Элементы массива представляют собой разновидность переменных, которые называют также переменными с индексами. В программном коде при необходимости можно ссылаться как на весь массив, так и на отдельные его элементы. Последовательность может состоять из большого количества элементов, а ссылка на каждый элемент будет состоять только из имени этой последовательности и индекса, т.е номера элемента в этой последовательности. Индексированные переменные необходимо описывать с помощью оператора Dim, при этом надо указывать не только тип массива, но и его размер. Массив с заданным размером называется статическим,или массивом фиксированной длины,массив с переменным размером называется Динамическим массивом. После имени массива в круглых скобках должен быть указан диапазон изменения индекса – нижняя и верхняя граница. Если не указана нижняя граница изменения индекса, то по умолчанию она равна нулю, но если в разделе General модуля программы поместив оператор Option Base 1, то элементы массива будут нумерованы с единицы. Допускаются отрицательные значения индекса.

Пример описаних статистического массивов:

Dim B (5) As Single `описан одномерный массив

` из 6 чисел вещественного типа

Dim C(1 To12) As Integer

` описан одномерный массив из 12 целых чисел

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

ReDim - переопределение размера массива.

Например:

Dim AR ( ) As Long `объявление динамического массива

n= Val(InputBox) ("Ввод количества элементов массива AR)

ReDim AR (1 To n) `одномерный массив из n элементов

31.Заполнение массивов и вывод на форму (функции датчика случ.чисел, функц. InputBox и предварительно созданного списка).

a) Dim A(1 To 5) As Integer, I As Integer

Randomize

Print “Массив А

For i = 1 To 5

A(i)= Int(Rnd*100)

Print A(i)

Next i

Массив из 5 элементов заполняется случайными числами от 0 до 99.Функция Rnd генерирует случ. веществ. число в диапазоне от 0 до 1. При умножении числа на 100 и отбрасывании дробной части (функц. Int), получается число в диапазоне от 0 до 99. Для получения новой последовательности используют Randomize.

Если поставить точку с запятой после A(i), то значения массива будут выводится в строку через 1 пробел, если поставить запятую, то элементы массива будут выводится по зонам (ширина зоны 14 символов).

For i= 1 To N

Print A(i);

If i Mod 10 = 0 Then Print

Next i

Print

Массив будет выводится на форму по 10 элементов в строке.

b) Для заполнения конкретными числами используется InputBox.

Dim B ( ) As Single, N As Integer, i As Integer

N=Val(InputBox(“Ввод количества элементов массива В”))

ReDim B (1 To N)

For i= 1 To N

B(i)= Val(InputBox(“Ввод “& i &” элементы массива”,_

Ввод с клавиатуры”))

Next i

c) Dim C ( ) As Single, M As Integer, i As Integer

M= List1.ListCount

ReDim C (1 To M)

For i= 1 To M

C(i)= Val(List1.List(i-1))

Next i

Свойство ListCount определяет количество элементов в списке, а св-во List- содержимое указанной строки. Нумерация начинается с 0.

Для вывода списка ListN программным способом осуществляется с помощью метода AddItem.

For i= 1 To N

List2.AddItem (B(i))

Next i

Форматирование значений элемента массива

Prit Format (A(i), “0.00”);

List2.AddItem Format (B(i), “#.##”)

32. Оператор цикла For Next.

For Next-цикл со счетчиком, границы определяютс 2мя операторами For и Next. Синтаксис оператора:

For Счетчик = Нач_Значение To Кон_Значение [Step Шаг]

Операторы тела цикла

[Exit For]

Next [Счетчик]

При каждом проходе переменная счетчик увеличивается на 1 или на величину шага (Step Шаг является необязательным).Exit For- оператор досрочного цикла, используется для «аварийного» завершения цикла. Цисло выполнения цикла можно определить: (Кон_Значение-Нач_Значение)/ Шаг+1

Примером цикла с известным числом повторений может служить вычисление значения N! (N!= 1*2*3…*N)

F=1

For I= 2 To N

F=F*I

Next I

33.Алгоритм и программа Сумма.

Программа:

Private Sub Command1_Click() ‘ Кнопка расчет

Dim a ( ) As Single, s As Single, i As Integer

n = Val (InputBox(“Ввод количества элементов массива”,_

Программа Сумма”))

ReDim a (1 To n)

Cls ‘ очистка формы

s=0

Print “Исходный массив

For i=1 To n

a(i)= Val (InputBox (“Ввод & i &” элемента массива”,_

Программа сумма”))

Print Format (a(i), “0.00 ”); ‘ печать элемента с 2-мя цифрами в дробной части

Next i

For i=1 To n

s=s + a(i) ‘ накопление суммы элементов массива

Next i

Print ‘ переход на новую строку

Print “Сумма элементов=”; Format(s, “0.00”)

End Sub

Алгоритм:

34. Алгоритм и программа Счетчик

Программа:

Private Sub Command1_Click() ‘ Кнопка расчет

Dim a ( ) As Single, k As Single, i As Integer, s As Integer, t As Integer

n = Val (InputBox(“Ввод количества элементов массива”,_

Программа Счетчик”))

s= Val (InputBox(“Ввод границы s”)

t= Val (InputBox(“Ввод границы t”)

ReDim a (1 To n)

Cls ‘ очистка формы

k=0

Print “Исходный массив

For i=1 To n

If a(i)>=s And a(i) <= t then k=k+1

Next i

Print ‘ переход на новую строку

Print “Количество элементов=”; Format(s, “0.00”)

End Sub

Алгоритм:

35. Алгоритм и программа Максимум.

Программа:

Private Sub Command1_Click() ‘ Кнопка расчет

Dim a ( ) As Single, k As Single, i As Integer

n = Val (InputBox(“Ввод количества элементов массива”,_

Программа Максимум”))

ReDim a (1 To n)

Cls ‘ очистка формы

max= a(i) : k = 1

For i=2 To n

If a(i)>=max max = a(i) : k = i

Next i

Print ‘ переход на новую строку

Print “Сумма элементов=”; Format(s, “0.00”)

End Sub

Алгоритм:

36. Алгоритм и программа Сортировка методом «пузырька».

Программа:

Private Sub Command1_Click() ‘ Кнопка расчет

Dim a () As Integer, b As Integer, i As Integer,_

j As Integer, L As Boolean

n=List1.ListCount ‘ Количество элементов в списке

ReDim a (1 To n)

For i= 1 To n

A(i)= Val (List1.List(i-1)) ‘ заполнение массива из списка

For i = 1 To n-1

L=True

For j = 1 To n-i

If a (j) > a (j+1) Then

b= a (j) : a (j+1) : a (j+1)=b

L=False

End If

Next j

If L Then Exit For

Next i

For i = 1 To n

List2.AddItem (a(i)) ‘ Формирование списка List2

Next i

End Sub

Алгоритм:

37Программа табулирования функции в Вижуал Бейсик. Пример. Программа табулирования.

Private Sub CominandButtonl_Click() Dim M,Y As Single Dim a, b, c, 1 As Single a = Val(TextBoxl.Text) b = Val(TextBox2Text) с = ValCrextBox3.Text) n = lnt((b-a)/c) l = a-c Fork=lTon

s = " "

l = l + c

M = l

s - "№" & Str(k) & "-" & Str(M)

ListBoxl.Addltem s

Y = arcsin(M л 2) + arcsin(M) / Atn(M)

s =""

s = "№" & Stt(k) & "=" & Str(Y)

ListBox2.AddItem s

Next к

End Sub

Function arcsin(x)

arcsin = Atn(x / Sqr(l - x * x))

End Function

38. двумерные массивы-матрицы. Объект ListBox. Программа транспонирования матрицы.

Private Sub CommandButtonl_CUck()

Dim tr, tc As Integer: Dim s As String

Randomize Timer

Dim a(l To 3,1 To 3) As Integer

Dim b(l To 3,1 To 3) As Integer

Fortr=lTo3

s = " "

Fortc= 1ТоЗ

a(tr, tc) = bit(10 * Rnd)

s = s&""&Str(a(tr,tc))

Nexttc

ListBoxl. Addltem s

Nexttr

Fortr= 1ТоЗ

For tc = 1 To 3

b(tr, tc) = a(tc, tr)

Nexttc: Nexttr

Fortr=lTo3

s = " "

For tc = 1 To 3

s = s&""&Str(b(tr,tc))

Nexttc

ListBox2.AddItem s

Nexttr

End Sub

40

41. Алгоритм и программа вычисления суммы элементов матрицы по столбцам.

Private Sub CommandButtonl_CUck()

Dim tr, tc, i, j As Integer: Dim s As String

Randomize Timer

Dim a(l To 3,1 To 3) As Integer

Dim b(l To 3) As Integer

Fortr=lTo3

s =""

Fortc=lTo3

a(tr, tc) = Int(10 * Rnd)

s = s&""&Str(a(tr,tc))

Nexttc

Lisffioxl.Addltem s

Nexttr

For j = 1 To 3

Kj) = 0

For i - 1 To 3

b(j) = b(j) + a(i,j)

Nexti

Nextj

s =""

For j = 1 To 3

s = s&""&Str(b(j))

Nextj

Lisffioxl.Addltem s

End Sub

42. Оператор цикла Do While, Пример.

Оператор цикла Do-Loop. Логически управляемый цикл, оператор Do — начало, оператор Loop — конец цикла. Оператор имеет четыре модификации:

1) Условие имеет значение True в начале цикла. Структура:

Do While <условие>

<блок операторов>

Exit Do <блок операторов>

Loop

Цикл выполняется пока истинно условие. Оператор Exit Do

предназначен для прекращения цикла и передачи управления оператору

Loop — конец цикла.

2) Условие имеет значение True в конце цикла. Структура:

Do

<блок операторов>

Exit Do

<блок операторов>

Loop While <условие>

Цикл выполняется хотя бы один раз, проверка условия в конце цикла.

43. Оператор цикла Do Until Пример.

Условие False в начале цикла.

Структура:

Do Until <условие>

<блок операторов>

Exit Do

<блок операторов>

Loop

Цикл выполняется до тех пор, пока условие не станет истинным.

4) Условие False в конце цикла.

Структура:

Do

<блок операторов>

Exit Do

<блок операторов>

Loop ШШ<условие>

Условие проверяется в конце цикла. Цикл прекращается, когда условие

станет истинным.

Пример:

Do While True

A=Rnd :Debug.Print a

If a>0.99 Then Exit Do

Loop

44. Цикл While-Wend. Пример.

Цикл While-Wend аналогичен циклу Do While-Loop, проверка условия

выполняется в начале цикла

Структура:

While <условие>

<блок операторов>

Wend.

Пример программы на использование цикла с условием. Расчёт количества расфасованных пакетов.

Private Sub Command_Click()

М=100:1=0

Print "Номер ", "Остаток "

Do

1=1+1

If I>99 then Exit Do 'Оператор Exit Do служит для прерывания цикла,

помещается внутри цикла и приводит передаче управления следующему

за циклом оператору

М=М-МЯ00

Loop Until M<5

Print LM

End Sub

45. Цикл For Each. Пример.

Цикл For Each. Оператор относится к категории объектных операторов,

т.е. применяется к массивам, наборам объектов, коллекциям.

Выполняется фиксированное число раз, число объектов в наборе

определяется автоматически.

Структура:

For Each <элемент> In <набор>

<блок операторов>

Exit For

<блок операторов>

Пример: For each z In arrx n=n+l x(n)=z Nextz

Пример прогаммы. Function intl (arrx; any; xjtiew) Dim i As Integer Dim n As Integer Dim j As Integer Dim x (1 to 100) as Double Dim у (1 to 100) as Double Dimz n=0

For each z in arrx n=n+l x(n)=z Nextz n=0

For each z in any n=n+l y(n)=z

For i=l to n-1

If x(i) <= x new And x(i+l)>= xnew Then j= i Nexti

If xnew > x(n) Then j = n - 1 If xjnew < x(l) Then j - 1

Intl = y(j) + (y( j+1) - У( j)) * (x_new - x (j)) / (x( j + 1) - x(j)) End Function

Цикл For Each.. .Next похож на цикл For .. .Next, но он повторяет группу операторов для каждого элемента из набора объектов (коллекции). Он особенно удобен, тогда, когда заранее не известно, сколько элементов содержится в наборе. Для наборов параметром этого цикла может быть только переменная типа Variant, Object или объектом перечисленным в Object Browser, Для массивов параметром этого цикла может быть только переменная типа Variant. Нельзя использовать этот цикл с массивом, имеющим определённый пользователем тин.

46, Процедуры в VB. Три типа процедур. Общие процедуры и процедуры обработки событий.

Программные модули на VB состоят из процедур. Использование процедур упрощает программирование, разбивая код модуля на процедуры, можно намного упростить чтение и модификацию текстов программ. В VB используется несколько видов процедур:

Процедуры SUB (не возвращает значения);

Процедуры Function (возвращает значение); • Процедуры Properly (могут возвращать и присваивать

значение, а также устанавливать ссылки на объекты). Процедура SUB - это блок кода, который выполняется в ответ на событие. Синтаксис процедуры:

[Private/Public ] [Static ] Sub <имя_процедуры>(аргументы) Параметры процедуры могут передаваться по значению и по ссылке. В первом случае процедуре передается только копия переменной, выступающей в качестве параметра процедуры. Если процедура изменяет значение параметра, то это затрагивает только копию переменной, а не саму переменную, т.е. во вне новое значение Ключевое слово By Val служит признаком того, что параметр передаётся по значению. Например: Sub PostAcc(ByVal AcctNum As Integer)

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

47Процедура SUB – это блок кода, который выполняется в ответ на событие. Синтаксис процедуры:

[Private/Public ] [Static ] Sub <имя_процедуры>(аргументы)

Операторы тела процедуры

End Sub

В VB следует понимать различие между двумя типами процедур SUB: общими процедурами и процедурами обработки событий.

Общая процедура указывает приложению, как выполнять конкретную задачу. Однажды определённая, она должна каждый раз специально вызываться приложением. Существуют два способа вызова процедуры Sub. Например для процедуры Prog1 c параметрами а и b:

Call Prog1(a,b) или Prog1 a,b . Как видно из примера при использование оператора Call, параметры заключены в круглые скобки. Формальные параметры – это наименования переменных с указанием их типов, через которые передается информация из основной программы или другой процедуры в процедуру. Могут существовать и процедуры без параметров.

Вызов процедуры производится следующим образом:

Имя_процедуры фактические параметры

или

Call имя_процедуры (фактические параметры)

Соответствующие фактические и формальные параметры должны совпадать по количеству, порядку следования и типу.

Объявление необязательных параметров осуществляется при помощи ключевого слова Optional. Выполнение оператора вызова процедуры состоит в следующем:

• все формальные параметры заменяются соответствующими фактическими;

• создается так называемый динамический экземпляр процедуры, который и выполняется;

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

По умолчанию фактические параметры передаются в процедуру по ссылке.

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

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

Sub Input_mas(n As Integer, A() As Integer, im As String)

Dim i As Integer

n = Val(InputBox("Ввод числа элементов массива " & im))

ReDim A(1 To n)

For i = 1 To n

A(i) = Val(InputBox("Ввод " & i & " элемента массива " & im))

Next i

End Sub

Sub Output_mas(ByVal n As Integer, A() As Integer, im As String)

Dim i As Integer

Print Tab(3); "Массив "; im

For i = 1 To n

Print A(i); " ";

Next i

Print

End Sub

Private Sub Command1_Click() ' Кнопка Расчет

Dim A() As Integer, B() As Integer, C() As Integer, _

n As Integer, m As Integer, k As Integer

Input_mas n, A(), "A": Output_mas n, A(), "A"

Input_mas m, B(), "B": Output_mas m, B(), "B"

Input_mas k, C(), "C": Output_mas k, C(), "C"

. . . . . . . .

End Sub

48В VB кроме стандартных встроенных функций можно писать собственные процедуры Function. Её синтаксис таков:

[Private/Public][Static]Function<имя_процедуры>

(аргументы) [As type]

<Операторы тела процедуры>

End Function.

Вызов процедуры Function чаще всего осуществляется заданием её имени и параметров в тексте выражения.

Процедура Function имеет тип, который определяет тип возвращаемого выражения.

Возвращаемое процедурой Function значение присваивается переменной с именем процедуры.

Обычно процедуре для выполнения требуется некоторая информация о состоянии программы. Эта информация заключена в значениях переменных, передаваемых процедуре при её вызове (их называют параметрами процедуры). По умолчанию параметры процедуры имеют тип Variant, в явном виде параметрам можно задать любой другой тип. Пример:

Function ForLunch(WeekDay As String, Hour As integer) As String

If WeekDay=“четверг” then

ForLunch=“рыба”

Else

ForLunch= “куры”

End if

If Hour >4 then ForLunch=“ Too late”

End Function

Параметры процедуры могут передаваться по значению и по ссылке. Пример: Получить таблицу значений функции по формуле: y=(arcsin(x*x)+arcsin(x))/arctan(x).

Private Sub Комманда1_Click()

Dim M, Y As Single

Dim a, b, c, l As Single

a = Val(Текст1.Text)

b = Val(Текст2.Text)

c = Val(Текст3.Text)

n = Int((b - a) / c)

l = a - c

For k = 1 To n

s = " "

l = l + c

M = l

s = “№" & Str(k) & "=" & Str(M)

Список1.AddItem s

Y = arcsin(M ^ 2) + arcsin(M) / Atn(M)

s = " "

s = “№" & Str(k) & "=" & Str(Y)

Список2.AddItem s

Next k

End Sub

Function arcsin(x)

arcsin = Atn(x / Sqr(1 - x * x))

End Function

49Программа табулирования функции в Вижуал Бейсик. Пример. Программа табулирования.

Private Sub CominandButtonl_Click() Dim M,Y As Single Dim a, b, c, 1 As Single a = Val(TextBoxl.Text) b = Val(TextBox2Text) с = ValCrextBox3.Text) n = lnt((b-a)/c) l = a-c Fork=lTon

s = " "

l = l + c

M = l

s - "№" & Str(k) & "-" & Str(M)

ListBoxl.Addltem s

Y = arcsin(M л 2) + arcsin(M) / Atn(M)

s =""

s = "№" & Stt(k) & "=" & Str(Y)

ListBox2.AddItem s

Next к

End Sub

Function arcsin(x)

arcsin = Atn(x / Sqr(l - x * x))

End Function

50.Одной из наиболее очевидных причин нарушения системы защиты является умышленный несанкционированный доступ (НСД) к конфиденциальной информации со стороны нелегальных пользователей и последующие нежелательные манипуляции с этой информацией. Защита информации – это комплекс мероприятий, проводимых с целью предотвращения утечки, хищения, утраты, несанкционированного уничтожения, искажения, модификации (подделки), несанкционированного копирования, блокирования информации и т.п. Поскольку утрата информации может происходить по сугубо техническим, объективным и неумышленным причинам, под это определение подпадают также и мероприятия, связанные с повышением надежности сервера из-за отказов или сбоев в работе винчестеров, недостатков в используемом программном обеспечении и т.д.

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

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

1. большое число пользователей в сети и их переменный состав. Защита на уровне имени и пароля пользователя недостаточна для предотвращения входа в сеть посторонних лиц;

2. значительная протяженность сети и наличие многих потенциальных каналов проникновения в сеть;

3. уже отмеченные недостатки в аппаратном и программном обеспечении, которые зачастую обнаруживаются не на предпродажном этапе, называемом бета- тестированием, а в процессе эксплуатации. В том числе неидеальны встроенные средства защиты информации даже в таких известных и "мощных" сетевых ОС, как Windows NT или NetWare.

Любые дополнительные соединения с другими сегментами или подключение к Интернет порождают новые проблемы. Атаки на локальную сеть через подключение к Интернету для того, чтобы получить доступ к конфиденциальной информации, в последнее время получили широкое распространение, что связано с недостатками встроенной системы защиты информации в протоколах TCP/IP. Сетевые атаки через Интернет могут быть классифицированы следующим образом:

• Сниффер пакетов (sniffer – в данном случае в смысле фильтрация) – прикладная программа, которая использует сетевую карту, работающую в режиме promiscuous (не делающий различия) mode (в этом режиме все пакеты, полученные по физическим каналам, сетевой адаптер отправляет приложению для обработки).

• IP-спуфинг (spoof – обман, мистификация) – происходит, когда хакер, находящийся внутри корпорации или вне ее, выдает себя за санкционированного пользователя.

• Отказ в обслуживании (Denial of Service – DoS). Атака DoS делает сеть недоступной для обычного использования за счет превышения допустимых пределов функционирования сети, операционной системы или приложения.

• Парольные атаки – попытка подбора пароля легального пользователя для входа в сеть.

• Атаки типа Man-in-the-Middle – непосредственный доступ к пакетам, передаваемым по сети.

• Атаки на уровне приложений.

• Сетевая разведка – сбор информации о сети с помощью общедоступных данных и приложений.

• Злоупотребление доверием внутри сети.

• Несанкционированный доступ (НСД), который не может считаться отдельным типом атаки, так как большинство сетевых атак проводятся ради получения несанкционированного доступа.

• Вирусы и приложения типа "троянский конь".

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

1. Технические (аппаратные) средства. Это различные по типу устройства (механические, электромеханические, электронные и др.), которые аппаратными средствами решают задачи защиты информации. Они либо препятствуют физическому проникновению, либо, если проникновение все же состоялось, доступу к информации, в том числе с помощью ее маскировки. Первую часть задачи решают замки, решетки на окнах, защитная сигнализация и др. Вторую – упоминавшиеся выше генераторы шума, сетевые фильтры, сканирующие радиоприемники и множество других устройств, "перекрывающих" потенциальные каналы утечки информации или позволяющих их обнаружить. Преимущества технических средств связаны с их надежностью, независимостью от субъективных факторов, высокой устойчивостью к модификации. Слабые стороны – недостаточная гибкость, относительно большие объем и масса, высокая стоимость.

2. Программные средства включают программы для идентификации пользователей, контроля доступа, шифрования информации, удаления остаточной (рабочей) информации типа временных файлов, тестового контроля системы защиты и др. Преимущества программных средств – универсальность, гибкость, надежность, простота установки, способность к модификации и развитию. Недостатки – ограниченная функциональность сети, использование части ресурсов файл-сервера и рабочих станций, высокая чувствительность к случайным или преднамеренным изменениям, возможная зависимость от типов компьютеров (их аппаратных средств).

3. Смешанные аппаратно-программные средства реализуют те же функции, что аппаратные и программные средства в отдельности, и имеют промежуточные свойства.

4. Организационные средства складываются из организационно-технических (подготовка помещений с компьютерами, прокладка кабельной системы с учетом требований ограничения доступа к ней и др.) и организационно-правовых (национальные законодательства и правила работы, устанавливаемые руководством конкретного предприятия). Преимущества организационных средств состоят в том, что они позволяют решать множество разнородных проблем, просты в реализации, быстро реагируют на нежелательные действия в сети, имеют неограниченные возможности модификации и развития. Недостатки – высокая зависимость от субъективных факторов, в том числе от общей организации работы в конкретном подразделении.

Шифрование данных представляет собой разновидность программных средств защиты информации и имеет особое значение на практике как единственная надежная защита информации, передаваемой по протяженным последовательным линиям, от утечки. Шифрование образует последний, практически непреодолимый "рубеж" защиты от НСД. Понятие "шифрование" часто употребляется в связи с более общим понятием криптографии. Криптография включает способы и средства обеспечения конфиденциальности информации (в том числе с помощью шифрования) и аутентификации. Конфиденциальность – защищенность информации от ознакомления с ее содержанием со стороны лиц, не имеющих права доступа к ней. В свою очередь аутентификация представляет собой установление подлинности различных аспектов информационного взаимодействия: сеанса связи, сторон (идентификация), содержания (имитозащита) и источника (установление авторства c помощью цифровой подписи).

Программные средства защиты информации

Встроенные средства защиты информации в сетевых ОС доступны, но не всегда, как уже отмечалось, могут полностью решить возникающие на практике проблемы. Например, сетевые ОС NetWare 3.x, 4.x позволяют осуществить надежную "эшелонированную" защиту данных от аппаратных сбоев и повреждений. Система SFT (System Fault Tolerance – система устойчивости к отказам) компании Novell включает три основные уровня:

• SFT Level I предусматривает, в частности, создание дополнительных копий FAT и Directory Entries Tables, немедленную верификацию каждого вновь записанного на файловый сервер блока данных, а также резервирование на каждом жестком диске около 2% от объема диска. При обнаружении сбоя данные перенаправляются в зарезервированную область диска, а сбойный блок помечается как "плохой" и в дальнейшем не используется.

• SFT Level II содержит дополнительные возможности создания "зеркальных" дисков, а также дублирования дисковых контроллеров, источников питания и интерфейсных кабелей.

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

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

1. Firewalls – брандмауэры (дословно firewall – огненная стена). Между локальной и глобальной сетями создаются специальные промежуточные серверы, которые инспектируют и фильтруют весь проходящий через них трафик сетевого/транспортного уровней. Это позволяет резко снизить угрозу несанкционированного доступа извне в корпоративные сети, но не устраняет эту опасность полностью. Более защищенная разновидность метода – это способ маскарада (masquerading), когда весь исходящий из локальной сети трафик посылается от имени firewall-сервера, делая локальную сеть практически невидимой.

2. Proxy-servers (proxy – доверенность, доверенное лицо). Весь трафик сетевого/транспортного уровней между локальной и глобальной сетями запрещается полностью – маршрутизация как таковая отсутствует, а обращения из локальной сети в глобальную происходят через специальные серверы-посредники. Очевидно, что при этом обращения из глобальной сети в локальную становятся невозможными в принципе. Этот метод не дает достаточной защиты против атак на более высоких уровнях – например, на уровне приложения (вирусы, код Java и JavaScript).

52.Основные составляющие информационной безопасности

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

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

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

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

Поясним понятия доступности, целостности и конфиденциальности.

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

Наконец, конфиденциальность – это защита от несанкционированного доступа к информации.

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

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

Целостность можно подразделить на статическую (понимаемую как неизменность информационных объектов) и динамическую (относящуюся к корректному выполнению сложных действий (транзакций)). Средства контроля динамической целостности применяются, в частности, при анализе потока финансовых сообщений с целью выявления кражи, переупорядочения или дублирования отдельных сообщений.

53.

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

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

Базовым законом в области защиты информации является принятый в начале 1995 года Федеральный Закон "Об информации, информатизации и защите информации" (далее для краткости - "Закон об информации"), который регламентирует отношения, возникающие при формировании и использовании информационных ресурсов Российской Федерации на основе сбора, накопления, хранения, распространения и предоставления потребителям документированной информации, а также при создании и использовании информационных технологий, при защите информации и прав субъектов, участвующих в информационных процессах и информатизации.

53Правовые методы защиты программ: патентная защита (устанавливает приоритет в разработке и использовании нового подхода или метода, применяемого при разработке программ, удовлетворяет их оригинальность), закон о производственных секторах (ограничивает круг лиц, знакомых или допущенных к ее эксплуатации, определяет меру их ответственности за разглашение секретов), лицензионные соглашения и контракты (распространяются на все аспекты правовой охраны программных продуктов, включая авторское право, патентную защиту, производственные секреты), закон об авторском праве (действует с момента создания программного продукта или базы данных в течение всей жизни автора и 50 лет после его смерти). Автор может выпускать в свет, воспроизводить в любой форме, распространять, модифицировать, осуществлять любое иное использование программного продукта или базы данных. Авторское право не связанно с правом собственности на материальный носитель. Лицензия – договор на передачу 1 лицом (лицензиаром) др. лицу (лицензиату) права на использование имени, продукции, технологии или услуги. Лицензионном соглашении оговариваются все условия эксплуатации программ, в том числе создание копий. На каждой копии программы должны быть те же отметки, что на оригинале: знак авторского права, знак патентной защиты или производственного секрета, торговые марки, символ зарегистрированного права на распространение программного продукта. Существуют типы лицензий: исключительная лицензия (продажа всех имущественных прав на программный продукт или базу данных, покупателю лицензии предоставляется исключительное право на их использование, автор или владелец патента отказывается от самостоятельного их применения или предоставления др лицам), простая лицензия (лицензиар предоставляет право лицензиату использовать программный продукт или базу данных, оставляя за собой право применять их и предоставлять на аналогичных условиях неограниченному числу лиц, лицензиат может продавать копии приобретенного программного продукта или базы данных), этикеточная лицензия (лицензия на 1 копию программного продукта или базы данных). Различают категории прав: эк. Права, дающие их обладателям право на получение эк. Выгод от продажи или использования программных продуктов баз данных; Моральные права, обеспечивающие защиту личности автора в его произведении. Программы по их юридическому статусу делятся на: 1лицензионные (дистрибутивы, распространяются разработчиками на платной основе. В соответствии с лицензионным соглашением разработчики принимают на себя ответственность за нормальное функционирование программ), 2программы условно бесплатные (shareware) и свободно распространяемые в целях их рекламы и продвижения на рынке (feeware). Пользователю предоставляется прграмма с ограниченным сроком действия (после истечения указанного срока программа перестает работать, если за неё не произведена оплата) или версия программа с ограниченными функциональными возможностями (в случае оплаты пользователю сообщается код, включающий все функции программы),3 бесплатное программное обеспечение: новые недоработанные (бета) версии программных продуктов (это позволяет провести их широкое тестирование); программные продукты, являющиеся частью принципиально новых технологий (это позволяет завоевать рынок); дополнения к ранее выпущенным программам (исправление ошибок, расширение возможностей); устаревшие версии программ; драйверы к новым устройствам или усовершенствованные драйверы к уже существующим. Правовая охрана программ для компьютеров и баз данных впервые в полном объеме введена в РФ Законом РФ от 23.09.92 № 3523-1 № «О правовой охране программ для электронных вычислительных машин и баз данных» (в настоящее время действует в редакции Федерального закона от 24.12.2002 № 177-ФЗ).