
- •Основы информационной культуры
- •2. Техническая база информационной технологии
- •2.1 Представление информации в эвм
- •2.2 Системы счисления
- •2.3 Форматы чисел в эвм
- •2.4 Представление символьной информации
- •Программное обеспечение Вычислительной системы
- •Архивация данных
- •Концепция Visual Basic
- •Основное меню
- •Объекты управления
- •Форма (Form)
- •Командная кнопка (CommandButton)
- •Метка (Label)
- •Текстовое окно (TextBox)
- •Типы данных
- •Переменные и константы
- •Область видимости переменных и констант
- •Выражения
- •Стандартные функции
- •Программирование линейных вычислительных процессов
- •Программирование разветвляющихся вычислительных процессов
- •Программирование циклических вычислительных процессов
- •Итерационные циклы
- •Добавление изображений в форму
- •Массивы
- •Поиск в массиве элементов, удовлетворяющих заданным условиям
- •Группировка объектов
- •Создание меню
- •Ввод информации с использованием переключателей и флажков проверки
- •Процедуры и функции
- •Информационно вычислительные сети
- •Базовая модель взаимодействия открытых сетей
- •Топология ивс
- •Сетевое по. (спо)
- •Глобальная компьютерная сеть Internet. Основы функционирования Интернет.
- •Структура Интернет
- •Адресация в сетях.
- •Адресация в Интернет
- •Основные службы Интернет
- •Многоуровневое представление средств сетевого взаимодействия.
- •Коммуникационные службы
- •Прямое общение в Интернет
- •Отложенное общение в Интернет
- •Информационные службы.
- •Поиск информации в Интернет.
Процедуры и функции
Программный код приложения представляет собой совокупность отдельных блоков программного кода, т.е. состоит из процедур, выполняемых автоматически при наступлении того или иного события, например, щелчке на командной кнопке, нажатии клавиши в текстовом окне (KeyPress) или при загрузке формы (Load).
Помимо встроенных «событийных» процедур (и стандартных функций) VВ позволяет программисту создавать и использовать в программном коде свои процедуры и функции, которые выполняют определенные действия и вычисления. Для этого фрагмент программного кода, выполняющий задачу, оформляется в виде отдельного блока, и ему назначается имя. Затем этот блок можно использовать в нужных местах программного кода, вызывая его по имени. Например, можно оформить в виде процедуры ввод и вывод элементов массива, причем эта процедура может работать с различными массивами с разным числом элементов. В виде функции можно оформить вычисление какой-либо величины, например, факториала числа.
Расчленение программного кода на отдельные фрагменты – процедуры и функции – имеет ряд преимуществ:
повышает понятность программы;
упрощает написание и отладку программного кода, т.к. каждая процедура пишется и отлаживается отдельно от других;
облегчает модифицируемость программного кода;
позволяет исключить повторяемость фрагментов программы;
представляется возможность создания библиотеки процедур для использования их в других приложениях.
Все это в конечном итоге делает работу приложения более эффективной и надежной.
Структура процедуры и функции, созданной программистом, почти буквально повторяет структуру «событийных» процедур VB:
заголовок;
описание переменных, констант и т.д.
операторы, выполняющие необходимые действия для решения задачи процедурой;
оператор конца процедуры.
Переменные и константы, описанные в процедуре, являются локальными, т.е. являются доступными только внутри данной процедуры.
При вызове процедуры или функции выполняются ее операторы, а затем продолжается выполнение той процедуры, из которой она была вызвана, с оператора, следующего за вызовом процедуры.
VB допускает наличие вложенных процедур, т.е. процедура может содержать вызов другой процедуры, эта, в свою очередь, - следующей и т.д. (Уровень вложенности может достигать нескольких сотен). Структуру внутренних процедур можно изобразить следующим образом:
Процедуры
Процедура предназначена для выполнения какой-либо законченной последовательности действий.
Существует два способа добавления процедуры, создаваемой программистом, в проект.
I. С помощью диалогового окна Add Procedure:
открыть окно программных кодов (Code);
из меню Tools выбрать команду Add Procedure;
откроется диалоговое окно Add Procedure, в котором нужно ввести имя процедуры и установить нужные параметры (переключатели и флажки).
щелкнуть кнопку ОК, чтобы добавить процедуру в раздел General окна кодов, имя процедуры будет присутствовать в списке процедур этого же окна. Ввести тело процедуры.
II. Другой способ – ввести с клавиатуры заголовок процедуры, а затем – тело процедуры в разделе General окна программных кодов.
Синтаксис процедуры:
[Private / Public] Sub имя процедуры [(список формальных параметров)]
[(объявление переменных и констант)]
операторы
End Sub
где
[Private / Public] – необязательные ключевые слова, определяющие область видимости процедуры;
Sub – ключевое слово, указывающее на процедуру;
End Sub – окончание процедуры;
список формальных параметров – записывается в круглых скобках; необязательный параметр; в нем перечисляются имена переменных и их тип, значения которых передаются процедуре из вызывающей ее процедуры; эти переменные не описываются внутри процедуры.
Замечание. Список формальных параметров вводится с клавиатуры .
Пример. Процедуры ввода элементов массива:
Private Sub Vvod (K as byte, Z () as integer)
‘K – размер массива, Z () – массив
Dim i as byte
for i = 1 to k
z(i) = InputBox (“вв”)
Picture1/ Print z(i); Spc(2)
next i
End Sub
Вызов процедуры
Для выполнения процедуры ее надо вызвать из той процедуры, где она должна быть выполнена. Для вызова используется оператор Call. Его синтаксис:
Call Имя_процедуры (список фактических параметров)
Оператор Call не обязателен – можно указать только имя процедуры и, если были заданы формальные параметры, список фактических параметров. В списке фактических параметров через запятую перечисляются имена переменных, значения которых передаются в вызываемую процедуру. Число фактических параметров и их типы в операторе вызова должны соответствовать числу и типам формальных параметров в определении процедуры. При вызове процедуры формальные параметры заменяются на соответствующие фактические.
Например, вызов процедуры Vvod:
Private Sub btn Start_Click ( )
Dim i as byte
Dim a( ) as Integer
Dim m as byte ‘размер массива
m = val (Text1.text)
ReDim a (1 to m) as Integer
Call vvod (m, a( ))
…
При выполнении процедуры Vvod формальный параметр К будет заменен на фактический m, а в качестве массива Z будет использоваться массив а( ).
Функции
Функция предназначена для вычисления некоторой величины, значение которой возвращается вызывающей процедуре.
Функция создается также, как и процедура: или с помощью диалогового окна Add Procedure (в группе Type выбирается Function) или вводится в разделе General окна программных кодов.
Синтаксис функции:
[Private / Public] Function имя [(список формальных параметров)] as тип
[объявление переменных и констант]
операторы
Имя = вычисляемая величина
End Function
У функции два основных отличия от процедуры.
Первое – ее заголовок: ключевое слово Function указывает на то, что эта функция, и даже после формальных параметров указывается тип возвращаемого параметра (вычисляемой величины).
Второе отличие заключается в том, что в теле функции хотя бы один раз должно быть присвоено значение вычисляемого параметра.
Для вызова функции следует в выражении, где необходимо использовать значения функции, указать имя функции со списком фактических параметров, которые должны совпадать по количеству, последовательности и типам с формальными параметрами.
Пример. Функция вычисления факториала числа n.
Private Function Factorial (n as byte) as integer
Dim Fact as integer, i as byte
Fact = 1
for i = 2 to n
Fact = Fact * i
next i
Factorial = Fact
End Function
Использование функции в основной процедуре:
Part = Sqr(t) / Factorial (j), где
Sqr(t) – вызов стандартной функции возведения в квадрат переменной (фактического параметра t,
Factorial (j) – вызов созданной функции, вычисляющей факториал переменной j (фактический параметр)
Досрочный выход из процедур и функций
Иногда необходимо выйти из процедуры еще до того, как она свершится. Это делается с помощью ключевого слова Exit: Exit Sub из процедуры и Exit Function – из функции.
При работе с проектом пользователь вводит в текстовое окно txtn целое число, определяющее число повторений цикла. Если установлен флажок «Выйти досрочно», то цикл выполняется в 2 раза меньшее число раз, если не установлен, то полностью – число раз, введенное с клавиатуры. Число повторений цикла отображается на командной кнопке «Выполнить».
Функция выполняет цикл n раз или n/2 раз, возвр.
Private Function Out (n as integer, flag as integer) as integer
Dim i as integer
Dim p as integer
Dim fl as integer
p = n ‘число выполнения цикла
fl = flag ‘признак досрочного выхода
for i = 0 to p
if fl = 1 then ‘если установлен флажок
if i = p/2 then ‘n если i = половине р
out = i ‘то возвращается текущее значение i
Exit function ‘и досрочный выход
end if
end if
Next i
Out = i ‘если флажок не установлен, цикл выполняется
‘полностью
End Function
Вызывающая функцию процедура:
Private Sub btnStart_Click ( )
Dim i as integer
Dim j as integer
j = CInt (txtn.text) ‘введенное число повторений цикла
i = Out (j, chkBox.Value) ‘вызов функции
btnStart.Caption = CStr(i) ‘вывод значения i
End Sub