TURBO PASCAL |
Новости
|
МассивыПри описании процедур и функций в заданиях данной подгруппы необходимо учитывать особенности, связанные с передачей массивов в качестве параметров. Для одномерных параметров-массивов рекомендуется использовать механизм открытых массивов, введенный в Borland Pascal 7.0. Для двумерных массивов-матриц подобный механизм использовать нельзя, поэтому предварительно требуется определить соответствующий пользовательский тип, который в дальнейшем использовать при описании параметров-матриц. Входные параметры-массивы обычно не описывают как параметры-значения, поскольку это приводит, как правило, к неоправданному расходу памяти. Если массив в ходе выполнения процедуры/функции не изменяется, его нужно описать как параметр- константу, а если изменяется, то как параметр-переменную. Вспомогательные локальные переменные-массивы в процедурах/функциях при выполнении заданий использовать не следует. Proc21. Описать функцию Polynom(A,N,X) вещественного типа, находящую значение полинома P в вещественной точке X. Полином P задается параметрами N (степень полинома, 0 < N < 8) и A (коэффициенты полинома, вещественный массив размера N+1): P(X) = A[1]·XN + A[2]·XN–1 + ... + A[N]·X + A[N+1]. Используя эту функцию, найти значения заданного полинома в пяти данных точках. Proc22. Описать функцию Min(A,N)1|Max(A,N)2 вещественного типа, находящую минимальный1|максимальный2 элемент массива A, состоящего из N вещественных чисел. С помощью этой функции найти минимальные1|максимальные2 элементы массивов A, B, C размера NA, NB, NC соответственно. Proc23. Описать функцию NMin(A,N)1|NMax(A,N)2 целого типа, находящую номер минимального1|максимального2 элемента массива A (массив состоит из N вещественных чисел). С помощью этой функции найти номера минимальных1|максимальных2 элементов массивов A, B, C размера NA, NB, NC соответственно. Proc24. Описать процедуру NMinmax(A,N,NMin,NMax), находящую номера минимального и максимального элемента массива A из N вещественных чисел. Выходные параметры: NMin (номер минимального элемента) и NMax (номер максимального элемента). С помощью этой процедуры найти номера минимальных и максимальных элементов массивов A, B, C размера NA, NB, NC соответственно. Proc25. Используя функцию NOD2 из задания Proc10, описать функцию NODN(A,N) целого типа, находящую наибольший общий делитель элементов целочисленного массива A размера N. С помощью этой функции найти наибольшие общие делители элементов массивов A, B, C размера NA, NB, NC соответственно. Proc26. Описать функцию NOKN(A,N) целого типа, находящую наименьшее nayee кратное элементов целочисленного массива A размера N. Учитывая соотношение НОК(X,Y) = X * Y div НОД(X,Y), использовать функцию NOD2 из задания Proc10. С помощью функции NOKN найти наименьшие общие кратные элементов массивов A, B, C размера NA, NB, NC соответственно. Proc27. Описать процедуру Factors(A,N,F), находящую разложение натурального числа A на простые множители. Количество множителей возвращается в целой переменной N, а сами множители (в порядке неубывания) — в целочисленном массиве F (N и F — выходные параметры; максимальное число элементов массива F считать равным 15). С помощью этой процедуры разложить на простые множители пять данных чисел. Proc28. Используя функцию Otr из задания Proc16, описать функцию PerimN(X,Y,N) вещественного типа, находящую периметр N-угольника, координаты вершин которого (в порядке их обхода) передаются в вещественных массивах X, Y размера N (> 2). С помощью этой функции найти периметры трех данных многоугольников (с числом вершин NA, NB, NC соответственно), если даны координаты их вершин. Proc29. Описать процедуру Invert(A,N), меняющую порядок следования элементов массива A из N вещественных чисел на противоположный ("инвертирование массива"). Массив A — входной и выходной параметр, N — входной параметр. С помощью этой процедуры инвертировать массивы A, B, C размера NA, NB, NC соответственно. Proc30. Описать процедуру MoveLeft(A,N,k)1|MoveRight(A,N,k)2, осуществляющую циклический сдвиг элементов вещественного массива A размера N на k позиций влево1|вправо2 (0 < k < 5, k < N). Массив A — входной и выходной параметр, N и k — входные параметры. С помощью этой процедуры осуществить сдвиг элементов данного массива размера N на k1 позиций, а затем — сдвиг элементов полученного массива на k2 позиций (k1 и k2 даны). После каждого вызова процедуры выводить на экран результирующий массив. Proc31. Описать процедуру Smooth(A,N), заменяющую каждый элемент вещественного массива A размера N на его среднее арифметическое со своими соседями ("сглаживание массива"). Массив A — входной и выходной параметр, N — входной параметр. С помощью этой процедуры выполнить пятикратное сглаживание данного массива A размера N, выводя на экран результаты каждого сглаживания. Proc32. Описать процедуру RemoveX(A,N,X), удаляющую элементы, равные числу X, из массива A целых чисел размера N. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры удалить из массивов A, B, C размера NA, NB, NC числа XA, XB, XC соответственно. Proc33. Описать процедуру DoubleX(A,N,X), дублирующую элементы, равные числу X, в массиве A целых чисел размера N. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры продублировать в массивах A, B, C размера NA, NB, NC каждое вхождение чисел XA, XB, XC соответственно. Proc34. Описать процедуру SortInc(A,N)1|SortDec(A,N)2, выполняющую сортировку по возрастанию1|убыванию2 массива A из N вещественных чисел. Массив A является входным и выходным параметром. С помощью этой процедуры отсортировать массивы A, B, C размера NA, NB, NC соответственно. Proc35. Описать функцию Norm1(A,M,N)1|Norm2(A,M,N)2 вещественного типа, вычисляющую норму матрицы A размера M x N с вещественными элементами: [Norm1(A,M,N) = max {|A[1,j]| + |A[2,j]| + ... + |A[M,j]|}]1| [Norm2(A,M,N) = max {|A[i,1]| + |A[i,2]| + ... + |A[i,N]|}]2, где максимум берется по всем [j от 1 до N]1|[i от 1 до M]2. Для данной матрицы A размера M x N найти Norm1(A,k,N)1|Norm2(A,k,N)2, k = 1,...,M. Proc36. Описать функцию SumLine(A,M,N,k)1|SumCol(A,M,N,k)2 вещественного типа, вычисляющую сумму элементов вещественной матрицы A размера M x N, расположенных в k-й строке1|столбце2 (если [k > M]1|[k > N]2, то функция возвращает 0). Для данной матрицы A размера M x N и трех данных k найти SumLine(A,M,N,k)1|SumCol(A,M,N,k)2. Proc37. Описать процедуру SwapLine(A,M,N,k1,k2)1|SwapCol(A,M,N,k1,k2)2, осуществляющую перемену местами строк1|столбцов2 вещественной матрицы A размера M x N с номерами k1 и k2 (если k1 или k2 больше M1|N2, то матрица не изменяется). Двумерный массив A — входной и выходной параметр, прочие параметры — входные. Используя эту процедуру, поменять для данной матрицы A размера M x N строки1|столбцы2 с номерами k1 и k2. Proc38. Описать процедуру Transp(A,M), выполняющую транспонирование квадратной вещественной матрицы A порядка M. Двумерный массив A — входной и выходной параметр, M — входной параметр. Использовать эту процедуру для транспонирования данной матрицы A порядка M. Proc39. Описать процедуру Gauss(A,M,N,i1,i2,X), преобразующую вещественную матрицу A размера M x N следующим образом: из строки i1 вычитается строка i2, умноженная на вещественное число X. Двумерный массив A — входной и выходной параметр, прочие параметры — входные. С помощью этой процедуры, используя в качестве вспомогательной первую строку, обнулить в остальных строках данной матрицы A размера M x N элементы k-го столбца (число k дано, причем A[1,k] <> 0). Proc40. Описать процедуру DelIJ(A,M,N,i,j), удаляющую из матрицы A размера M x N строку и столбец, содержащие элемент A[i,j] (если i > M или j > N, то матрица не изменяется). Двумерный вещественный массив A и целые числа M (> 1), N (> 1) являются входными и выходными параметрами, i и j — входные параметры. Дана матрица A размера M x N и числа i, j. Применить к матрице A процедуру DelIJ и вывести полученную матрицу. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |