Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sranaya_informatika.doc
Скачиваний:
24
Добавлен:
12.04.2015
Размер:
2.48 Mб
Скачать

1.3. Выражения и операции.

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

В Visual Basic существуют 4 категории операции:

1. Арифметические.

2. Сравнения.

3. Логические.

4. Строковые.

Операция

Символ оператора

Возведение в степень

^

Отрицание (унарная операция)

Умножение, деление

*, /

Целочисленное деление

\

Деление по модулю

mod

Сложение, вычитание

+, –

Конкатенация строк

&

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

=, <>, <, >, <=, >=

Логические операторы

Not, And, Or, Xor, Eqv, Lmp, Like, Is

1.4. Операторы

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

Формат оператора:

V = <выражение>,

где V – переменная;

<выражение> – выражение определенной категории.

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

Существуют два условных оператора:

1). IF…THEN

2). SELECT…END SELECT.

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

В Visual Basic имеются следующие типы циклов:

1). циклы со счетчиком– For…Next;

2). циклы с условием - Do…Loop.

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

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

50 Функции ввода и вывода

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

InputBox (Приглашение$, Заголовок$ [, ПоУмолчанию$]

В процессе выполнения этой функции появляется диалоговая панель с текстовым полем. В строке заголовка панели будет печататься значение второго аргумента Заголовок$, на самой панели печатается значение аргумента Приглашение$, в текстовом поле печатается значение аргумента ПоУмолчанию$ (если это значение отсутствует, содержимое текстового окна также отсутствует).

Введенная пользователем в текстовом поле строка становится значением функции.

Dim strA As String

Sub Command1_Click()

strA = InputBox (“Введите текст”, ”Функция ОкноВвода”)

Form1.Print strA

End Sub

В процессе выполнения программы в текстовом окне введем строку «Привет!», которая будет присвоена строковой переменной strA и затем напечатана на форме.

Функция MsgBox (ПанельСообщений). В простейшем случае функция MsgBox может работать в режиме оператора и использоваться для вывода сообщений не на форме, а на специальной панели сообщений. Синтаксис функции в режиме оператора использует запись аргументов без скобок:

MsgBox Сообщение$ [, Параметры] [, Заголовок$]

Строка Сообщение$ выводится на панели сообщений, аргумент Параметры определяет внешний вид панели, а строка Заголовок$ печатается в строке заголовка панели. Последние два аргумента, заключенные в квадратные скобки, не являются обязательными.

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

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

Private Sub CommandButton1_Click()

MsgBox "Привет!", , "Функция ПанельСообщений"

End Sub

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

MsgBox(Сообщение$ [, Параметры] [, Заголовок$])

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

Таблица 5. Значения Параметров, определяющие вид панели сообщений

Объект панели сообщений

Код

Пиктограмма

vbCritical

16

vbQuestion

32

vbExclamation

48

vbInformation

64

Объект панели сообщений

Код

Набор кнопок

0

ОК

1

ОК, Отмена

2

Стоп, Повтор, Пропустить

3

Да, Нет, Отмена

4

Да, Нет

5

Повтор, Отмена

С помощью одного числа, являющегося суммой кодов нескольких параметров, можно одновременно установить определенную пиктограмму и определенную комбинацию кнопок, размещенных на панели сообщений. Например, число 36 можно рассматривать как сумму чисел 32 (код пиктограммы «Вопрос») и 4 (код комбинации кнопок Да, Нет).

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

Dim bytA As Byte

Sub Command1_Click()

bytA = MsgBox("Вы хотите зарегистрироваться?", _

36, "Вопрос")

Form1.Print bytA

End Sub

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

Таблица 6. Значения функции MsgBox

Значения функции

Нажатая кнопка

1

ОК

2

Отмена

3

Стоп

4

Повтор

5

Пропустить

6

Да

7

Нет

Далее значение функции MsgBox присваивается целочисленной переменной bytA (нажатие на кнопку Да соответствует числу 6) и печатается на форме.

51 API – это аббревиатура Application Programming Interface (интерфейс прикладного программирования). Другими словами, API – это набор функций, которые сама операционная система дает программисту для использования их в своих программах. С помощью  API  программисты легко реализуют свои задумки на практике.  API функции могут вызываться из Visual Basic для выполнения задач, для которых недостаточно стандартного программного кода Visual Basic. Например, стандартные средства Visual Basic не позволяют выключит компьютер или  перезагрузить его. Однако все это можно легко сделать через обращение к соответствующей функции API. Практически все функции, которые располагаются в Windows  - находятся внутри DLL (Dynamic Link Library). Все dll-файлы расположены в системной папке Windows. Существует свыше 1000 функций API, которые условно делятся на четыре основные категории. •    Работа с приложениями - запуск и закрытие приложений, обработка команд меню, перемещения и изменения размера окон.  •    Графика-создание изображений.  •    Системная информация-определение текущего диска, объем памяти, имя текущего пользователя и т.д.  •    Работа с реестром - манипуляции с реестром Windows  Теперь перейдем непосредственно к использованию этих функций на практике. Функции API, вызываемые в Visual Basic должны быть сначала объявлены. При объявлении указывается имя DLL и функции, а также информация о количестве и типе аргументов.  Процедуры DLL объявляются командой Declare в секции General Declarations модуля формы или стандартного модуля:

Declare Function имя Lib "библиотека" [Alias "псевдоним"] [([[ByVal ] _ переменная [As тип] [,ByVal,] переменная [As тип]]...])] As тип

Процедуры DLL, находящиеся в стандартных модулях, по умолчанию являются открытыми и могут вызываться из любой точки приложения. Процедуры, объявленные в модуле формы, являются закрытыми и перед их объявлением должно стоять ключевое слово Private. Секция Lib сообщает, где следует искать файл DLL, содержащий функцию. При ссылке на основные библиотеки Windows (user32.dll,kernel32.dll,gdi.dll) расширение включать не обязательно. Если путь к файлу не указан, то начинается просмотр каталогов в следующей последовательности 1.    Каталог, содержащий EXE-файл программы  2.    Текущий каталог  3.    Системный каталог Windows  4.    Каталог Windows  5.    Переменная окружения Path  Вот небольшой перечень стандартных библиотек DLL Windows

  • advapi.dll  - Защита NT,реестр и другие продвинутые сервисы.

  • comdlg.dll - Стандартные диалоговые окна.

  • gdi.dll        -  Интерфейс графических устройств.

  • kernel32.dll - Память,диски,процессы,ресурсы.

  • mpr.dll        - Сети.

  • netapi32.dll - Библиотека сетевого API.

  • shell32.dll    - Оболочка Windows,drag-and-drop,выборка значков.

  • user32.dll    - Пользовательский интерфейс-окна,меню,строки,сообщения.

  • version.dll    - Контроль версий.

  • winmm.dll    - Мультимедиа,звук,джойстики,таймеры.

  • winspoll.dll    -Диспетчер печати.

Большинство процедур DLL за документировано с использованием нотации языка программирования C и C++. Для успешного преобразования функции API в команду Declare необходимо разбираться в механизме передачи аргументов. Обычно аргументы передаются по значению. В этом случае перед именем аргумента ставится ключевое слово ByVal. Если аргумент передается по ссылке, то ставится ByRef. Вот самый малый список функций которые используются в Visual Basic: •    BitBlt - Копирует изображение из одного hDC в другой.  •    ExitWindowsEx - Перезагрузка или выход из Windows.  •    FindWindow - Находит Handle окна с указанным Caption.  •    GetCursorPos - Возвращает текущую позицию курсора мыши (глобально).  •    GetDriveType - Возвращает тип накопителя.  •    GetForegroundWindow - Возвращает Handle активного окна.  •    SetCursorPos - Устанавливает новую позицию курсора мыши.  •    SetVolumeLabel - Изменяет метку диска.  •    SetWindowPos - Устанавливает позицию окна с определённым Handle (также с помощью этой функции можно сделать так, чтобы окно было ПОВЕРХ всех.  •    ShellExecute - Запускает приложение, ассоциированное с расширением, которое имеет указанный файл (также может просто запустить указанное приложение).  •    ShowCursor - Скрывает или показывает курсор мыши на экране.

Также при программирование на Visual Basic, да и на других языках возникает проблема (все проблемы можно обсудить на форуме для программистов), когда нужно использовать реестр windows, но с помощью api функций это сделать легко, например:

Для чтения строкового параметра используйте функцию GetRegString Пример: Dim test As String test = GetRegString(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\DirectX", "Version") Form1.Caption = test

Для чтения параметра DWORD GetRegDWord Пример: Dim test As Long test = GetRegDWord(HKEY_LOCAL_MACHINE, _ "Software\Microsoft\Internet Explorer\AboutURLs", "Home") Form1.Caption = test

Для записи строкового параметра используется SetRegString Пример: SetRegString HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "Options" Если ключ или параметр не были созданы, то они будут созданы, если ключ или параметр уже существуют, то новые значения запишутся поверх старых.

Для записи параметра типа DWORD используется SetRegDWord Пример: SetRegDWord HKEY_LOCAL_MACHINE, _ "Software\test", "MyProgram", "555"

Для удаления ключа из реестра используется функция DeleteRegKey Пример: DeleteRegKey HKEY_LOCAL_MACHINE, "Software", "test", True Второй параметр - Ключ-родитель Третий параметр - True - если требуется подтверждение на удаление или False - если подтверждение не требуется.

Для удаления параметра из реестра используется функция DeleteRegValue Пример: DeleteRegValue HKEY_LOCAL_MACHINE,_ "Software\Microsoft\Internet Explorer\AboutURLs", "mozilla", False На самом деле возможности API функций в операционной системе windows практически безграничны. Давайте закончим на этом рассмотрение этой возможности Visual Basic, но на последок напишем не большую программку с использованием API функций.  Данная программа просто выводит сообщение на экран, вставьте следующий код:

Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Sub Form_Load() Const TEXT = "Ты использовал API" Dim hRgn As Long Font.Name = "Times New Roman" Font.Bold = True Font.Size = 60 Width = TextWidth(TEXT) Height = TextHeight(TEXT) BeginPath hdc Print TEXT EndPath hdc hRgn = PathToRegion(hdc) SetWindowRgn hWnd, hRgn, False Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2 End Sub

Мы здесь  сами использовали 4 функции (BeginPath, EndPath, PathToRegion, SetWindowRgn), которые располагаются в двух dll библилтеках (gdi32, user32).

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

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

Основные свойства алгоритмов

  1. Результативность означает возможность получения результата после выполнения конечного количества операций.

  1. Определенность состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств.

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

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

Для задания алгоритма необходимо описать следующие его элементы:

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

  • правило начала;

  • правило непосредственной переработки информации (описание последовательности действий);

  • правило окончания;

  • правило извлечения результатов.

Линейные алгоритмы

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

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

Алгоритмизация – процесс разработки алгоритма (плана действий) для решения задачи

53 Цикл For ... Next.

Теперя вот что. Далее мы будем использовать цикл For ... Next. Это очень важная и удобная вещь. И используется почти в каждой программе. Выглядит он так:

For переменная=число To другое число Step Шаг

Всякие операторы

Next переменная

Здесь переменная - это числовая, обязательно объявленная оператором Dim переменная, число - любое число с которого начинается цикл, но может быть и переменной, другое число - это число, которым цикл заканчивается, Шаг - это на сколько за один цикл изменяется переменная. Если не ставить, то по умолчанию Step принимается за единицу. Всякие операторы - это любой программный код, который ты вставишь. Он будет выполняться каждый цикл. Например такой цикл

For x=0 To 10 Step 2 Text1. Text = Text1.Text &" " & "x" Next x

добавляет изменяющееся значение x в Text1. Цикл сработает шесть раз, в первый проход x примет значение 0, и в Text1 запишется 0, во второй переменная x примет значение 2 (0+Step), в третий 4 и т.д. В Text1 выведется

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