Лабораторная работа №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. из двух упорядоченных по возрастанию массивов, получить третий, упорядоченный по возрастанию.