While a &lt

advertisement
Лабораторная работа №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 составить функции для:
1. получения числа, записанного цифрами заданного числа в обратном
порядке;
2. нахождения суммы делителей числа N.
3. нахождения НОД и НОК двух (трех) заданных целых чисел;
4. вычисления суммы первых n чисел Фибоначчи
(числа Фибоначчи
1,1,2,3,5,8 и т.д., т.е. каждое последующее число равно сумме двух
предыдущих).
5. определения, является ли число простым (число называется простым, если
оно делится только на 1 и на само число)
6. определения, является ли заданное число N совершенным. Число называется
совершенным, если оно равно сумме своих делителей (6=1+2+3).
7. определения, является ли заданное число N автоморфным. Число называется
автоморфным, если после возведения в квадрат оно совпадает с младшими
разрядами числа (52=25, 252=625).
8. определения, является ли заданное число P числом Армстронга. Число,
состоящее из n цифр, называется числом Армстронга, если оно равно сумме
n-х степеней своих цифр (153= 13+53+33).
9. определения, является ли заданное число N полиндромом. Полиндромом
называется число, которое читается одинаково слева направо и справа
налево (121,676 и т.д.).
10. На отрезке [n, m] найти все простые числа.
11. На отрезке [n, m] найти все совершенные числа.
12. На отрезке [n, m] найти все автоморфные числа.
13. На отрезке [n, m] найти все полиндромы.
14. На отрезке [n, m] найти все числа Армстронга.
15. На отрезке [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 составить функции для:
1. нахождения суммы (количества) положительных (отрицательных)
элементов массива;
2. нахождения суммы (количества) элементов массива стоящих на четных
(нечетных) местах;
3. нахождения произведения отрицательных (положительных) элементов
массива;
4. подсчета количества отрицательных (положительных, нулевых, кратных k)
элементов массива;
5. нахождения суммы четных (нечетных, кратных n) элементов массива;
6. нахождения НОД (НОК) элементов массива;
7. нахождения минимального (максимального) элемента массива и места его
расположения в массиве (номера строки и номера столбца);
8. нахождения максимального среди отрицательных (минимального среди
положительных элементов массива);
9. нахождения двух самых больших (самых маленьких) элементов массива.
10. расположения элементов массива в следующем порядке – положительные,
отрицательные и нулевые;
11. упорядочивания по возрастанию (убыванию) элементов массива;
12. в упорядоченном массиве, найти такие два элемента, произведение которых
максимально (минимально);
13. из двух упорядоченных по возрастанию массивов, получить третий,
упорядоченный по возрастанию.
Download