M,J |},
где максимум берется по всем J от 1 до N. Для данной матрицы A размера
M × N найти Norm1(A, K, N), K = 1, . . ., M.
96
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
Param20. Описать функцию Norm2(A, M, N) вещественного типа, вычисляю-
щую норму вещественной матрицы A размера M × N:
Norm2(A, M, N) = max {|A I,1
| + |A I,2
| + . . . + |A I,N |},
где максимум берется по всем I от 1 до M. Для данной матрицы A размера
M × N найти Norm2(A, K, N), K = 1, . . ., M.
Param21. Описать функцию SumRow(A, M, N, K) вещественного типа, вы-
числяющую сумму элементов вещественной матрицы A размера M × N,
расположенных в K-й строке (если K > M, то функция возвраща-
ет 0). Для данной матрицы A размера M × N и трех данных K найти
SumRow(A, M, N, K).
Param22. Описать функцию SumCol(A, M, N, K) вещественного типа, вычис-
ляющую сумму элементов вещественной матрицы A размера M × N,
расположенных в K-м столбце (если K > N, то функция возвраща-
ет 0). Для данной матрицы A размера M × N и трех данных K найти
SumCol(A, M, N, K).
Param23. Описать процедуру SwapRow(A, M, N, K 1
, K 2
), осуществляющую
перемену местами строк вещественной матрицы A размера M × N с
номерами K 1
и K 2
. Матрица A является входным и выходным параметром;
если K 1
или K 2
больше M, то матрица не изменяется. Используя эту
процедуру, поменять для данной матрицы A размера M × N строки с
данными номерами K 1
и K 2
.
Param24. Описать процедуру SwapCol(A, M, N, K 1
, K 2
), осуществляющую
перемену местами столбцов вещественной матрицы A размера M × N с
номерами K 1
и K 2
. Матрица A является входным и выходным парамет-
ром; если K 1
или K 2
больше N, то матрица не изменяется. Используя эту
процедуру, поменять для данной матрицы A размера M × N столбцы с
данными номерами K 1
и K 2
.
Param25. Описать процедуру Transp(A, M), выполняющую транспонирование (то есть зеркальное отражение относительно главной диагонали) квадрат-
ной вещественной матрицы A порядка M. Матрица A является входным
и выходным параметром. Используя эту процедуру, транспонировать дан-
ную матрицу A порядка M.
Param26. Описать процедуру RemoveRows(A, M, N, K 1
, K 2
), удаляющую из
вещественной матрицы A размера M × N строки с номерами от K 1
до K 2
включительно (предполагается, что 1 < K 1
≤ K 2
). Если K 1
> M, то матрица
не изменяется; если K 2
> M, то удаляются строки матрицы с номерами
Составные типы данных в процедурах и функциях
97
от K 1
до M. Двумерный массив A и числа M, N являются входными и
выходными параметрами. Используя процедуру RemoveRows, удалить из
данной матрицы A размера M × N строки с номерами от K 1
до K 2
и
вывести размер полученной матрицы и ее элементы.
Param27. Описать процедуру RemoveCols(A, M, N, K 1
, K 2
), удаляющую из
вещественной матрицы A размера M × N столбцы с номерами от K 1
до K 2
включительно (предполагается, что 1 < K 1
≤ K 2
). Если K 1
> N,
то матрица не изменяется; если K 2
> N, то удаляются столбцы матрицы
с номерами от K 1
до N. Двумерный массив A и числа M, N являются
входными и выходными параметрами. Используя процедуру RemoveCols,
удалить из данной матрицы A размера M × N столбцы с номерами от K 1
до K 2
и вывести размер полученной матрицы и ее элементы.
Param28. Описать процедуру RemoveRowCol(A, M, N, K, L), удаляющую из
вещественной матрицы A размера M × N строку и столбец, которые
содержат элемент A K,L (предполагается, что M > 1 и N > 1; если K > M или L > N, то матрица не изменяется). Двумерный массив A и числа M, N являются входными и выходными параметрами. Дана матрица A размера
M × N и числа K, L. Применить к матрице A процедуру RemoveRowCol
и вывести размер полученной матрицы и ее элементы.
Param29. Описать процедуру SortCols(A, M, N), выполняющую сортиров-
ку по возрастанию столбцов целочисленной матрицы A размера M × N (столбцы сравниваются лексикографически: если первые элементы столб-
цов различны, то меньшим считается столбец, содержащий меньший пер-
вый элемент; если первые элементы столбцов равны, то анализируются их
вторые элементы и т. д.). Двумерный массив A является входным и выход-
ным параметром. Используя процедуру SortCols, отсортировать столбцы
данной матрицы A размера M × N.
Строки Param30. Описать функцию IsIdent(S) целого типа, проверяющую, является
ли строка S допустимым идентификатором, то есть непустой строкой,
которая содержит только латинские буквы, цифры и символ подчеркива-
ния «» и не начинается с цифры. Если S является допустимым иденти-
фикатором, то функция возвращает 0. Если S является пустой строкой, то
возвращается −1, если S начинается с цифры, то возвращается −2. Если
S содержит недопустимые символы, то возвращается номер первого недо-
98
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
пустимого символа. Проверить с помощью функции IsIdent пять данных
строк.
Param31. Описать функцию FillStr(S, N) строкового типа, возвращаю-
щую строку длины N, заполненную повторяющимися копиями строки-
шаблона S (последняя копия строки-шаблона может входить в резуль-
тирующую строку частично). Используя эту функцию, сформировать по
данному числу N и пяти данным строкам-шаблонам пять результирующих
строк длины N.
Param32. Описать процедуру UpCaseRus(S), преобразующую все строчные
русские буквы строки S в прописные (остальные символы строки S не
изменяются). Строка S является входным и выходным параметром. Ис-
пользуя процедуру UpCaseRus, преобразовать пять данных строк.
Param33. Описать процедуру LowCaseRus(S), преобразующую все пропис-
ные русские буквы строки S в строчные (остальные символы строки S не изменяются). Строка S является входным и выходным параметром.
Используя процедуру LowCaseRus, преобразовать пять данных строк.
Param34. Описать процедуру TrimLeftC(S, C), удаляющую в строке S началь-
ные символы, совпадающие с символом C. Строка S является входным и
выходным параметром. Дан символ C и пять строк. Используя процедуру
TrimLeftC, преобразовать данные строки.
Param35. Описать процедуру TrimRightC(S, C), удаляющую в строке S конеч-
ные символы, совпадающие с символом C. Строка S является входным и
выходным параметром. Дан символ C и пять строк. Используя процедуру
TrimRightC, преобразовать данные строки.
Param36. Описать функцию InvertStr(S, K, N) строкового типа, возвраща-
ющую инвертированную подстроку строки S, содержащую в обратном
порядке N символов строки S, начиная с ee K-го символа. Если K превос-
ходит длину строки S, то возвращается пустая строка; если длина строки
меньше K + N, то инвертируются все символы строки, начиная с ee K-го
символа. Вывести значения функции InvertStr для данной строки S и каж-
дой из трех пар положительных целых чисел: (K 1
, N 1
), (K 2
, N 2
), (K 3
, N 3
).
Param37. Описать функцию PosSub(S 0
, S, K, N) целого типа, возвращающую
номер позиции, начиная с которой в строке S содержится первое вхо-
ждение строки S 0
, причем анализируются только N символов строки S,
начиная с ее K-го символа (таким образом, PosSub обеспечивает поиск