8.1Описать процедуру AddRightDigit(D, K), добавляющую к целому положительному числу K справа цифру D (D — входной параметр целого типа, лежащий в диапазоне 0–9, K — параметр целого типа, являющийся одновременно входным и выходным). Если результат операции больше 32767, то выходная величина должна принимать значение 32767. С помощью этой процедуры добавить к данному числу K справа цифры, хранящиеся в массиве {МDi} i = 1, 2, ... , n.
8.2Описать функцию SumRange(A, B) целого типа, находящую сумму всех целых чисел от A до B включительно (A и B — целые). Если A > B, то функция возвращает 0. С помощью этой функции найти суммы чисел от C1 до C2, от C2 до C3 и от C3 до C4, если дан массив {C1, C2, C3, C4}.
8.3 Описать процедуру Smooth(A, N), выполняющую сглаживание вещественного массива A размера N следующим образом: каждый элемент массива, кроме первого и последнего, заменяется на среднее арифметическое двух соседних элементов (при вычислении среднего арифметического используются исходные значения соседних элементов); первый и последний элементы не меняются. Массив A является входным и выходным параметром. С помощью этой процедуры выполнить пятикратное сглаживание данного массива {МA} размера N, выводя результаты каждого сглаживания.
8.4Описать функцию IsSquare(K) логического типа, возвращающую TRUE, если целый параметр K (>0) является квадратом некоторого целого числа, и FALSE в противном случае. С ее помощью найти количество квадратов в массиве из N целых положительных чисел. Операцию извлечения квадратного корня не использовать.
8.5 Описать процедуру Split(A, NA, B, NB, C, NC), формирующую по целочисленному массиву A размера NA два целочисленных массива B и C размера NB и NC соответственно; при этом массив B содержит все четные числа из массива A, а массив C — все нечетные числа (в том же порядке). Массивы B и C и числа NB и NC являются выходными параметрами. Применить эту процедуру к заданному массиву A размера NA и вывести размер и содержимое полученных массивов B и C.
8.6 Описать функцию MinElem(A, N) целого типа, находящую минимальный элемент целочисленного массива A размера N. С помощью этой функции найти минимальные элементы массивов A, B, C размера NA, NB, NC соответственно.
8.7 Описать процедуру Smooth1(A, N), выполняющую сглаживание вещественного массива A размера N следующим образом: элемент AK заменяется на среднее арифметическое первых K исходных элементов массива A. Массив A является входным и выходным параметром. С помощью этой процедуры выполнить пятикратное сглаживание данного массива A размера N, выводя результаты каждого сглаживания.
8.8Описать функцию MaxNum(A, N) целого типа, находящую номер максимального элемента вещественного массива A размера N.С помощью этой функции найти номера максимальных элементов массивов A, B, C размера NA, NB, NC , соответственно.
8.9Описать процедуру Split1(A, NA, B, NB, C, NC), формирующую по целочисленному массиву A размера NA два целочисленных массива B и C размера NB и NC соответственно; при этом массив B содержит все числа из массива A, расположенные на нечетных местах а массив C — на четных (в том же порядке). Массивы B и C и числа NB и NC являются выходными параметрами. Применить эту процедуру к заданному массиву A размера NA и вывести размер и содержимое полученных массивов B и C.
8.10 Описать функцию SumRow(A, M, N, K) вещественного типа, вычисляющую сумму элементов вещественной матрицы A размера M x N, расположенных в K-й строке (если K > M, то функция возвращает 0). Для данной матрицы A размера M x N и трех значений K, хранящихся в массиве {К1,К2,К3} найти SumRow(A, M, N, K).
8.11 Описать процедуру RemoveX(A, N, X), удаляющую из целочисленного массива A размера N элементы, равные целому числу X. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры удалить числа XA, XB, XC из массивов A, B, C размера NA, NB, NC соответственно и вывести размер и содержимое полученных массивов.
8.12 Описать функцию Fib(N) целого типа, вычисляющую N-й элемент последовательности чисел Фибоначчи FK, которая описывается следующими формулами:
F1 = 1, F2 = 1, FK = FK–2 + FK–1, K = 3, 4, … .
Используя функцию Fib, найти первые М чисел Фибоначчи.
8.13 Описать процедуру ShiftRight3(A, B, C), выполняющую правый циклический сдвиг: значение A переходит в B, значение B — в C, значение C — в A (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры выполнить правый циклический сдвиг для двух данных наборов из трех чисел: (A1, B1, C1) и (A2, B2, C2).
8.14 Описать функцию Fact2(N) вещественного типа, вычисляющую двойной факториал:
N!! = 1·3·5·…·N, если N — нечетное; N!! = 2·4·6·…·N, если N — четное
(N > 0 — параметр целого типа; вещественное возвращаемое значение используется для того, чтобы избежать целочисленного переполнения при больших значениях N). С помощью этой функции найти двойные факториалы пяти данных целых чисел.
8.15 Описать процедуру SortDec3(A, B, C), меняющую содержимое переменных A, B, C таким образом, чтобы их значения оказались упорядоченными по убыванию (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры упорядочить по убыванию два данных набора из трех чисел: (A1, B1, C1) и (A2, B2, C2).
8.16 Описать функцию DigitCount(K) целого типа, находящую количество цифр целого положительного числа K. Используя эту функцию, найти количество цифр для каждого числа, хранящегося в массиве {МКi} i = 1, 2, ... , n.
8.17 Описать процедуру InvertDigits(K), меняющую порядок следования цифр целого положительного числа K (К £ 9999) на обратный (K — параметр целого типа, являющийся одновременно входным и выходным). С помощью этой процедуры поменять порядок следования цифр на обратный для каждого числа, хранящегося в массиве {МКi} i = 1, 2, ... , n..
8.18 Описать функцию SumCol(A, M, N, K) вещественного типа, вычисляющую сумму элементов вещественной матрицы A размера M x N, расположенных в K-м столбце (если K > N, то функция возвращает 0). Для заданной матрицы A размера M x N и трех значений K, хранящихся в массиве {К1,К2,К3}, найти SumCol(A, M, N, K).
8.19 Описать процедуру DigitCountSum(K, C, S), находящую количество C цифр целого положительного числа K, а также их сумму S (K — входной, C и S — выходные параметры целого типа). С помощью этой процедуры найти количество и сумму цифр для каждого из пяти целых чисел, хранящихся в массиве {К1, К2, К3, К4, К5,}.
8.20 Описать функцию DigitN(K, N) целого типа, возвращающую N-ю цифру целого положительного числа K (цифры в числе нумеруются справа налево). Если количество цифр в числе K меньше N, то функция возвращает –1. Для заданного положительного чисел K вызвать функцию DigitN с параметром N, изменяющимся от 1 до 5.
8.21 Описать процедуру TrianglePS(A, H, P,S), находящую периметр равнобедренного треугольника P и его площадь S по основанию A и высоте H, проведенной к основанию (A и H — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты, хранящиеся в массивах {A}, {H}.
8.22 Описать функцию IsPrime(N) логического типа, возвращающую True, если целый параметр N (> 1) является простым числом, и False в противном случае (число, большее 1, называется простым, если оно не имеет положительных делителей, кроме 1 и самого себя). Дан массив из 10 целых чисел, больших 1. С помощью функции IsPrime найти количество простых чисел в данном наборе.
8.23 Описать процедуру RectPS(x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям координат, по координатам (x1, y1), (x2, y2) его противоположных вершин (x1, y1, x2, y2 — входные, P и S — выходные параметры вещественного типа). С помощью этой процедуры найти периметры и площади трех прямоугольников с заданными противоположными вершинами.
8.24 Описать функцию IsPowerN(K, N) логического типа, возвращающую TRUE, если целый параметр K (>0) является степенью числа N (>1), и FALSE в противном случае. Дано число N (>1) и массив {К} из 10 целых положительных чисел. С помощью функции IsPowerN найти количество степеней числа N в данном массиве.
8.25 Описать процедуру SortInc(A, B, C), меняющую содержимое переменных A, B, C таким образом, чтобы их значения оказались упорядоченными по возрастанию (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры упорядочить по возрастанию два данных набора из трех чисел: (A1, B1, C1) и (A2, B2, C2).
8.26 Описать функцию Tes(A, B, X0,Y0) целого типа, выполняющую проверку: как взаимно расположены точка с координатами X0,Y0 ипрямая Y=AX+B. В том случае, если точка расположена выше прямой - результат должен быть равным единице, если точка лежит на прямой - нулю и если точка ниже прямой - то минус единице. Применить функцию для заданных A, B, {X0i},{Y0i}, i=1,2,…n.
8.27 Описать процедуру AddLeftDigit(D, K), добавляющую к целому положительному числу K слева цифру D (D — входной параметр целого типа, лежащий в диапазоне 1–9, K — параметр целого типа, являющийся одновременно входным и выходным). Если результат операции больше 32767, то выходная величина должна принимать значение 32767. С помощью этой процедуры поочередно добавить к данному числу K слева данные цифры хранящиеся в массиве {МDi} i = 1, 2, ... , n.
8.28 Описать функцию DigitSum(K) целого типа, находящую сумму цифр целого положительного числа K. Используя эту функцию, найти количество цифр для каждого из заданных целых положительных чисел {МKi} i = 1, 2, ... , n.
8.29 Описать процедуру Swap(X, NX,Y, NY, K), меняющую местами содержимое первых К элементов массивов Х и Y. X и Y — вещественные массивы, являющиеся одновременно входными и выходными параметрами, NX, NY - размеры массивов, К - входной параметр. Если К > NX или К > NY, то за величину К принять меньшее из NX, NY. Применить процедуру для заданных массивов X и Y и трех значений {K1, K2, K3}.
8.30 Описать функцию IsPalindrom(K), возвращающую TRUE, если целый параметр K является палиндромом (то есть его запись читается одинаково слева направо и справа налево), и FALSE в противном случае. С ее помощью найти количество палиндромов в наборе из 10 целых положительных чисел.