КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Подпрограмма-функция
Программирование с использованием подпрограмм.
Обособленную группу операторов, оформленную специальным образом, которую можно выполнять многократно, обращаясь к ней из различных мест программы, называют подпрограммой. Чтобы подпрограмма при обращении к ней выполнялась каждый раз с новыми данными, ее нужно составить в общем виде, а исходные данные для работы передавать в переменные подпрограммы перед обращением к ней.
Это подпрограмма имеет следующую структуру: FUNCTION имя [(список параметров) STATIC] [Операторы подпрограммы] имя = выражение END FUNCTION
Для обращения к функции используют указатель функции содержащую имя функции и в скобках конкретные значения ее аргументов. Результат выполнения подпрограммы- функции в главную программу передается через локальную переменную, имя которой должно совпадать с именем подпрограммы.
Пример 10. Вычислить , где . Сумму вычислить с точностью 0,0001.Для этого необходимо суммировать до тех пор, пока очередной член суммы не станет меньше заданной точности.
Используем подпрограмму - функцию.
Function R(X) S = 0: K = 1 While Abs(X ^ K / K ^ 2) > 0.0001 S = S + X ^ K / K ^ 2 K = K + 1 Wend R = S End Function Sub PR10() U = R(1 / 2) + R(1 / 3) + R(1 / 4) Cells(1, 1) = "U=" Cells(1, 2) = U End Sub Пример 11. Вычислить скалярное произведение векторов:
Используем подпрограмму, вычисляющую скалярное произведение векторов : .
Sub pr11() Rem "Основная программа" k = Cells(2, 1): m = Cells(2, 1) ReDim a(1 To k), b(1 To k), C(1 To m), D(1 To m) For i = 1 To k a(i) = Cells(3 + i, 1): b(i) = Cells(3 + i, 2) Next For i = 1 To m C(i) = Cells(3 + i, 3): D(i) = Cells(3 + i, 4) Next S1 = SP(a(), b(), k) S2 = SP(C(), D(), m) Cells(2, 5) = "S1" Cells(2, 6) = "S2" Cells(3, 5) = S1 Cells(3, 6) = S2 End Sub Function SP(X(), Y(), N) Rem "Подпрограмма" S = 0 For i = 1 To N S = S + X(i) * Y(i) Next SP = S End Function
Подпрограмма общего вида (процедура)
Это подпрограмма имеет следующую структуру: SUB имя [(список параметров)] [STATIC] Операторы подпрограммы END SUB
Для обращения к подпрограмме общего вида служит оператор [CALL] имя подпрограммы [(список аргументов)].
Результаты выполнения подпрограммы - процедуры передаются в главную программу через локальные переменные, указанные в списке параметров. Поэтому, в отличие от подпрограммы – функции, из подпрограммы – процедуры в главную программу можно передать большее количество данных. Используем подпрограмму общего вида для решения примера 10. Sub PR10_main() Rem "Основная программа" Call P(1 / 2, R1) Call P(1 / 2, R2) Call P(1 / 2, R3) U = R1 + R2 + R3 Cells(1, 1) = "U=" Cells(1, 2) = U End Sub
Sub P(X, R) Rem "Подпрограмма процедура" R = 0: K = 1 While Abs(X ^ K / K ^ 2) > 0.0001 R = R + X ^ K / K ^ 2 K = K + 1 Wend
Для решения примера 11. Sub pr11_procedura() Rem "Основная программа" k = Cells(2, 1): m = Cells(2, 1) ReDim a(1 To k), b(1 To k), C(1 To m), D(1 To m) For i = 1 To k a(i) = Cells(3 + i, 1): b(i) = Cells(3 + i, 2) Next For i = 1 To m C(i) = Cells(3 + i, 3): D(i) = Cells(3 + i, 4) Next Call SP(a(), b(), k, S1) Call SP(C(), D(), m, S2) Cells(2, 5) = "S1" Cells(2, 6) = "S2" Cells(3, 5) = S1 Cells(3, 6) = S2 End Sub
Sub SP(X(), Y(), N, S) Rem "Подпрограмма" S = 0 For i = 1 To N S = S + X(i) * Y(i) Next End Sub ЛИТЕРАТУРА 1. Г. Зельднер «Программирование на языке Quick Basic 4.Б» М.: ABF:1996 г.-186 с.
2. Майкл Маккелви. Visual Basic 4.-М.: Вином,1996.-23 с.
3. Методические указания к расчетно-графическим работам для студентов 1 курса специальностей 2903, 2906, 2907, 2908, 2909, 2910 / КГАСА, Сост.О.В.Бахарева. Казань, 1995, 34 с.
4. Методические указания по курсу "Информатика" для лабораторных и контрольных работ для студентов всех специальностей и направлений подготовки. Основы программирования. /Казанский государственный архитектурно-строительный университет; Сост.: Ф.Г.Ахмадиев, Ф.Г.Габбасов, - Казань, 2012. 44 с.
5. Г.З. Гарбер. «Основы программирования на Visual Basic и VBA в Excel 2007». Москва: «Солон – Пресс», 2008 г.- 191 с.,
РЕЦЕНЗИЯ
на методические указания по курсу "Информатика" для лабораторных и самостоятельных работ для студентов всех специальностей и направлений подготовки.
Дата добавления: 2014-11-07; Просмотров: 702; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |