Лабораторная работа №5_5. Разработка функций обработки многочленов, векторов и матриц на VBA Многочлен n-ой степени Pn(x)=anxn+an-1xn-1+an-2xn-2+ ...+a1x+a0 можно представить в следующем виде Pn(x)=(...((an x+an-1)x+an-2)x+...+a1)x+a0 (схема Горнера). Как видно, многочлен Pn(x) задается массивом коэффициентов a0, a1,..., an-1, an Поэтому обработка многочленов сводится к обработке одномерных массивов. Примеры функций обработки многочленов функция вычисления значения многочлена Pn(x) в точке Х0 Public Function ЗНАЧЕНИЕ_ПОЛИНОМА_В_ТОЧКЕ(A As Variant, X) Dim M As Integer Dim I As Integer M = A.Columns.Count P = A(1) For I = 2 To M P = P * X + A(I) Next I ЗНАЧЕНИЕ_ПОЛИНОМА_В_ТОЧКЕ = P End Function Задания На VBA составить функции, позволяющие: 1. вычислить значение многочлена Pn(x) в точке x0 по схеме Горнера; 2. найти коэффициенты производной от полинома Pn(x), т.е. найти многочлен Rn-1= (Pn(x))' 3. найти коэффициенты первообразной от полинома Pn(x); 4. найти коэффициенты k-ой производной от полинома Pn(x); 5. найти коэффициенты k-ой первообразной от полинома Pn(x); 6. найти сумму (разность) двух полиномов Pn(x) и Qm(x); 7. найти произведение двух полиномов Pn(x) и Qm(x); 8. найти скалярное произведение двух n-мерных векторов X и Y; 9. найти произведение матрицы на вектор; 10. найти произведение (сумму) двух матриц; 11. найти сумму элементов каждой строки (столбца) матрицы; 12. найти строку и столбец матрицы, на пересечении которых находится минимальный (максимальный) элемент матрицы; 13. найти строку и столбец матрицы, которые содержат наибольшее число нулевых элементов; 14. найти строку (столбец) матрицы с максимальной (минимальной) суммой элементов; 15. найти среднее арифметическое (среднее геометрическое) положительных элементов матрицы; 16. найти сумму (количество) элементов верхнего (нижнего) правого (левого) треугольника квадратной матрицы порядка n. Лабораторная работа №5_6. Разработка функций обработки строк и текстовой информации на VBA Примеры функций обработки строк функция подсчета количества символа пробел в строке Public Function CountSpace(s As String) As Integer Dim i As Integer Dim p As Integer p=0 For i = 1 To Len(s) If Mid(s, i, 1) = " " Then p=p+1 End If Next CountSpace = p End Function Задания На VBA составить функции, позволяющие: 1. Сформировать строку длины N (N — четное), которая состоит из чередующихся символов C1 и C2, начиная с C1. 2. Дана строка. Получить строку, содержащую те же символы, но расположенные в обратном порядке. 3. Дана строка S и число N. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы "." (точка). 4. Даны два числа: N1 и N2, и две строки: S1 и S2. Получить из этих строк новую строку, объединив N1 первых символов строки S1 и N2 последних символов строки S2. 5. Даны две строки: S1 и S2. Проверить, содержится ли строка S2 в строке S1. Если да, то вывести номер позиции, начиная с которой S2 содержится в S1, если нет, то вывести 0. 6. Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1. 7. Дана строка S и символ C. Удвоить каждое вхождение символа C в строку S. 8. Даны строки S1, S2 и символ C. Перед (после) каждого вхождения символа C в строку S1 вставить строку S2. 9. Даны две строки: S1 и S2. Удалить из строки S1 первую (последнюю) подстроки, совпадающие с S2. Если таких подстрок нет, то вывести S1 без изменений. 10. Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождения строки S2 на S3. 11. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов в строке. 12. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые начинаются и заканчиваются одной и той же буквой. 13. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые содержат ровно три буквы "А". 14. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить длину самого короткого (длинного) слова. 15. Дана строка-предложение на русском языке. Вывести самое короткое (длинное) слово в предложении (если таких слов несколько, то вывести первое из них). 16. Дана строка-предложение, содержащая избыточные пробелы. Преобразовать ее так, чтобы между словами был ровно один пробел.