- •Содержание
- •Лабораторная работа №1
- •Составить программу для вычисления значения следующей функции:
- •3. Текст программы
- •I этап.
- •Лабораторная работа №2
- •Составить программу для вычисления значения следующей функции, заданной следующим образом:
- •3. Текст программы
- •Лабораторная работа №3
- •3. Текст программы
- •II этап.
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Лабораторная работа №9
- •Примеры Процедура типа sub (subroutine)
- •Процедура типа function
Примеры Процедура типа sub (subroutine)
Вычислим
значение функции Y:
X=17
Dim Y as Single
Sub p1
REM пример использования процедуры SUB
FOR X=1 TO 7
CALL SUM1(X)
Debug.PRINT “X=”; X, “Y=”;Y
NEXT X
END Sub
SUB SUM1(а)
y=0
FOR K=0 TO 12
y = y + SQR(k+а^2)
NEXT K
END SUB
------------------------------------------------------------------------------------------
Подсчет интеграла (метод левых прямоугольников)
![]()
Sub integral(x)
B = 1.5 : A=0
H = (B-A)/1000
S=0
FOR t=A TO B STEP H
S = S + (EXP(t*x)*(1+SIN(t)))/((1+COS(t))*H
NEXT t
End Sub
Процедура типа function
Рассмотрим пример использования подпрограммы-функции.
Вычислим
значение функции U:
X=17
Вычисление сумм оформим в виде процедур-функций.
Sub P2
REM пример использования процедуры-функции
FOR X=1 TO 7
U = SUM1(X) + SUM2(X)
DEBUG.PRINT “X=”; X, “U=”;U
NEXT X
END SUB
FUNCTION SUM1(X)
S=0
FOR K=0 TO 5
S = S + SIN(X)/(1+k)
NEXT K
SUM1 = S
END FUNCTION
FUNCTION SUM2(X)
S=0
FOR K=0 TO 4
S = S + SQR(k*X)
NEXT K
SUM2 = S
END FUNCTION
Пример: Найти площадь многоугольника, разбив его на треугольники, площадь каждого из которых определить по формуле Герона.
Текст программы

FOR I=1 ТО 3
A=InputBox(“A=”)
B=InputBox(“B=”)
C=InputBox(“C=”)
CALL P1(A,B,C)
NEXT I
DEBUG.PRINT "CYMMA="; S
END
Текст процедуры
SUB P1(A,B,C)
P = (A+B+C)/2
S1= SQR(P*(P-A)*(P-B)*(P-C))
DEBUG.PRINT "S1=";S1
S = S+S1
END SUB
Здесь, P1 – имя процедуры; S – глобальная переменная (площадь многоугольника); P – полупериметр; S1 – площадь треугольника.
Процедура-функция FUNCTION - END FUNCTION
Применяется в выражениях для возвращения единственного значения.
Функция допускает рекурсию. Вызывается функция по имени со списком
фактических параметров.
Формат функции:
FUNCTION имя(список формальных параметров)
операторы
имя=выражение
END FUNCTION
Пример: Решить предыдущую задачу, используя функцию подсчета площади треугольника по формуле Герона.
Текст программы:
FOR I=1 TO 3
A=InputBox(“A=”)
B=InputBox(“B=”)
C=InputBox(“C=”)
S=S+ S1(A,B,C): DEBUG.PRINT S1(A,B,C)
NEXT I
DEBUG.PRINT "СУММА="; S
END
Текст функции:
FUNCTION S1(A,B,C)
P=(A+B+C)/2
S1=SQR(P*(P-A)*(P-B)*(P-C))
END FUNCTION
Приложение 5 МАССИВЫ
Массив — набор однотипных значений, имеющих одно имя. Массивы бывают: одномерными (векторы), двумерными (матрицы) и многомерными.
В одномерных массивах хранятся значения линейных таблиц. Каждая ячейка таблицы имеет свой номер (индекс). Индексы обозначаются целыми числами, например: 0,1,2,...; 1, 2,3, ...; -4,-3,-2, ...и т. д.
Для описания одномерного массива используется оператор DIM.
DIM Имя(Размерность).
DIM M%(5) - массив М используется для хранения целых чисел и содержит 6 ячеек (элементов) с индексами 0,1,2, 3,4, 5.
Массив M%
|
Значения |
5 |
4 |
-6 |
12 |
0 |
-4 |
|
Индексы |
0 |
1 |
2 |
3 |
4 |
5 |
DIM M(1 to 6) - массив М используется для хранения вещественных чисел и содержит 6 ячеек (элементов) с индексами 1,2, 3,4, 5,6. Массив М
|
Значения |
5 |
4 |
-6 |
12 |
0 |
-4 | ||
|
Индексы |
1 |
2 |
3 |
4 |
5 |
6 | ||
Обращение к i-той ячейке - M(i)
ВВОД ДАННЫХ В ОДНОМЕРНЫЙ МАССИВ
Для ввода данных в ячейки одномерного массива можно использовать циклы.
1 способ:
DIM M(l to5)
DEBUG.PRINT "Введите значения элементов массива М(1 to 5)"
FOR i=1 to 5
M(i)=INPUTBOX("Введите значение элемента")
NEXT i
2 способ:
DIM M%(1 to 5)
RANDOMIZE TIMER
FOR i=l to 5
M(i)=INT(rnd()*100)+1
NEXT i
Вводятся 5 случайных целых чисел от 0 до 100.
ВЫВОД ЗНАЧЕНИЙ ОДНОМЕРНОГО МАССИВА НА ЭКРАН
1 Способ (в одну строку):
DEBUG.PRINT "Массив M(1 to 5)"
FOR i=1 to 5
DEBUG.PRINT M(i);
NEXT i
DEBUG.PRINT
2 Способ (в столбец):
DEBUG.PRINT "Массив М(1 to 5)"
FOR i=l to 5
DEBUG.PRINT "M("; i; ")="; M(i)
NEXT i
ОБРАБОТКА ОДНОМЕРНОГО МАССИВА
' Нахождение максимального значения и его места в массиве
МАХ=М(1): К=1
FOR i=2 to 5
IF M(i)>MAX THEN MAX=M(i): K=i
NEXT i
DEBUG.PRINT "Максимальное значение ="; MAX
DEBUG.PRINT "Его индекс в массиве =; К
' Нахождение заданного значения в массиве и их количество
X=INPUTBOX("Введите искомое число")
FOR i=1 to 5
IF M(I) >X THEN K=K+1
NEXT i
DEBUG.PRINT "В данном массиве число"; X; "встречается"; К; "раз"
' Сортировка одномерного массива по возрастанию
FOR I=1 to 4
FOR I+1 to 5
IF M(j)<M(i) THEN SWAP M(i),M(j)
NEXT j
Next i
DEBUG.PRINT "Новый массив"
FOR i=1 to 5
DEBUG.PRINT M(i);
NEXT i
DEBUG.PRINT
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
О.Д. Мердина, Е.В. Стельмашонок Программирование в среде Microsoft Office 2000 Методические указания к лабораторным работам для студентов. –СПб. – Санкт-Петербург 2003.
Под редакцией Н.В. Макаровой. Информатика. Учебник. М., Финансы и статистика, 2001.
Биллиг В.A. VBA в Office 2000. Офисное программирование. - М.: Издательско-торговый дом «Русская редакция», 1999.
Гарнаев А.Ю. и др. Microsoft Office 2000: разработка приложений /Под общ. ред. Ф.А. Новикова.- СПб.:БХВ-Санкт-Петербург, 2000.
Хорев В.Д. Самоучитель программирования на VBA в Microsoft Office- К.: Юниор, 2001.
Харитонова И.А., Михеева В.Д. Microsoft Access 2000: разработка приложений.- СПб.:БХВ-Санкт-Петербург, 2001.
Гарнаев А.Ю. Excel, VBA, Internet в экономике и финансах: разработка приложений / Под общ. ред. Ф.А. Новикова. -СПб.:БХВ-Санкт-Петербург, 2002.
. Мердина О.Д.Стельмашонок Е.В. Проектирование WINDOWS - приложений на VISUAL BASIC .Учебное пособие. СПб,СПбГИЭУ,2001
