Программирование на BASIC / Visual Basic / Лабораторные работы8 / 5_3 - 5_4 (VBA)
.docЛабораторная работа №5_3. Разработка функций обработки целых чисел.
Примеры функций
-
функция нахождения суммы цифр целого числа n;
Public Function сумма_цифр_числа(n)
s = 0
While n <> 0
c = n Mod 10
s = s + c
n = n \ 10
Wend
сумма_цифр_числа = s
End Function
-
функция нахождения НОД двух натуральных чисел a и b
Public Function НОД(a, b)
While a <> b
If a > b Then
a = a - b
Else
b = b - a
End If
Wend
НОД = a
End Function
Задания
На VBA составить функции для:
-
получения числа, записанного цифрами заданного числа в обратном порядке;
-
нахождения суммы делителей числа N.
-
нахождения НОД и НОК двух (трех) заданных целых чисел;
-
вычисления суммы первых n чисел Фибоначчи (числа Фибоначчи 1,1,2,3,5,8 и т.д., т.е. каждое последующее число равно сумме двух предыдущих).
-
определения, является ли число простым (число называется простым, если оно делится только на 1 и на само число)
-
определения, является ли заданное число N совершенным. Число называется совершенным, если оно равно сумме своих делителей (6=1+2+3).
-
определения, является ли заданное число N автоморфным. Число называется автоморфным, если после возведения в квадрат оно совпадает с младшими разрядами числа (52=25, 252=625).
-
определения, является ли заданное число P числом Армстронга. Число, состоящее из n цифр, называется числом Армстронга, если оно равно сумме n-х степеней своих цифр (153= 13+53+33).
-
определения, является ли заданное число N полиндромом. Полиндромом называется число, которое читается одинаково слева направо и справа налево (121,676 и т.д.).
-
На отрезке [n, m] найти все простые числа.
-
На отрезке [n, m] найти все совершенные числа.
-
На отрезке [n, m] найти все автоморфные числа.
-
На отрезке [n, m] найти все полиндромы.
-
На отрезке [n, m] найти все числа Армстронга.
-
На отрезке [n, m] найти все числа близнецы. Два простых числа называются близнецами, если расстояние между ними равно 2.
Лабораторная работа №5_4. Разработка процедур и функций обработки массивов
Примеры функций
-
функция вычисления суммы элементов массива А
1-й способ
Public Function Сумма_массива(A As Variant)
Dim s, x
s = 0
For Each x In A
s = s + x
Next x
Сумма_массива = s
End Function
2-й способ
Public Function SumMas(a As Variant)
n = a.Columns.Count 'количество столбцов
m = a.Rows.Count ' количество строк
s = 0
For r = 1 To m
For c = 1 To n
s = s + a(r, c)
Next c
Next r
SumMas=s
End Function
-
функция подсчета количества положительных элементов массива А
Public Function CountP(a As Variant)
n = a.Columns.Count
m = a.Rows.Count
k= 0
For r = 1 To m
For c = 1 To n
If a(r,c) > 0 Then k=k+1
Next c
Next r
CountP=k
End Function
-
нахождения максимального и минимального значения массива А
Public Function max_min_A(a As Variant)
n = a.Columns.Count
m = a.Rows.Count
minimal = a(1, 1)
maximal = a(1, 1)
For r = 1 To m
For c = 1 To n
If a(r, c) < minimal Then minimal = a(r, c)
If a(r, c) > maximal Then maximal = a(r, c)
Next c
Next r
max_min_A = "Минимальный эл-т:" + Str(minimal) + ", максимальный эл-т:" + Str(maximal)
End Function
Задания
На VBA составить функции для:
-
нахождения суммы (количества) положительных (отрицательных) элементов массива;
-
нахождения суммы (количества) элементов массива стоящих на четных (нечетных) местах;
-
нахождения произведения отрицательных (положительных) элементов массива;
-
подсчета количества отрицательных (положительных, нулевых, кратных k) элементов массива;
-
нахождения суммы четных (нечетных, кратных n) элементов массива;
-
нахождения НОД (НОК) элементов массива;
-
нахождения минимального (максимального) элемента массива и места его расположения в массиве (номера строки и номера столбца);
-
нахождения максимального среди отрицательных (минимального среди положительных элементов массива);
-
нахождения двух самых больших (самых маленьких) элементов массива.
-
расположения элементов массива в следующем порядке – положительные, отрицательные и нулевые;
-
упорядочивания по возрастанию (убыванию) элементов массива;
-
в упорядоченном массиве, найти такие два элемента, произведение которых максимально (минимально);
-
из двух упорядоченных по возрастанию массивов, получить третий, упорядоченный по возрастанию.