Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник_Главы 5-6.doc
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
665.09 Кб
Скачать

6.3. Обработка двумерных массивов с помощью функций.

  1. Дана матрица А(N,N). Расположить строки матрицы в порядке убывания их максимальных элементов. Напечатать исходную матрицу индексы максимальных элементов и сформированную матрицу. Использовать функции.

  2. Дана матрица А и массив В(N). Получить вектор С, i-й элемент которого 1, если в i-ой строке матрицы нет чисел, рав­ных Bi и 0 - в противном случае. Использовать функции.

  3. Дана матрица А(N,N). Сформировать матрицу В, каждый элемент которой 1, если сумма элементов i-й строки матри­цы А больше суммы элементов j-го столбца, и 0 - в противном случае. Использовать функции.

  4. Получить матрицу В, проделав над всеми элементами матрицы А следующие преобразования:

Использовать функции.

  1. Найти максимальный элемент среди диагональных элементов матри­цы А(N,N). Расположить диагональные элементы в по­рядке убывания на месте 1-го столбца матрицы. На место диаго­нальных элементов поставить нули. Напечатать по строкам исходную и полученную матрицы, а также максимальный из диагональных элементов с номером строки. Использовать функции.

  2. Дана матрица А(N,М). Сформировать массив В, где Bi =1, если в i-й строке матрицы А нет четных чисел, иначе Bi = 0. Использовать функции.

  3. Задана матрица А(М,N). Упорядочить столбцы матрицы А в порядке возрастания значений элементов матрицы А в 1-й стро­ке. Использовать функции.

  4. Заданы два вектора Х = {x1, x2, x3}, Y = {y1, y2, y3} и матрица А(3,3). Найти сумму двух векторов С и D, где С есть произ­ведение вектора Х на матрицу А, а вектор D - произведение век­тора Y на матрицу А. Использовать функции.

  5. Дана матрица А(N,N). Получить матрицу В меньшего порядка, состоящую из Aij, которые делятся на (i+j). Элементы одной строки матрицы А, попавшие в матрицу В должны составить также одну строку. Если число элементов в разных строках В различны, то недостающие элементы сделать нулевыми. Напечатать исходную и полученную матрицы. Использовать функции.

  6. Дана матрица А(N,N). Вычислить K – максимальную сумму модулей элементов строк, L – максимальную сумму модулей элементов столбцов. Найти меньшее из этих чисел. Использовать функции.

  7. Дана матрица А(N,M). В каждой строке найти элемент, модуль которого ближе всего к , где max и min - максимальный и минимальный из элементов каждой строки, и записать этот элемент в массив В. Использовать функции.

  8. В каждой строке матрицы А(N,M) найти минимальный элемент и вычесть его из других элементов строки. Напечатать по строкам исходную и полученную матрицы с соответ­ствующими заголовками, а также массив минимальных элементов строк. Использовать функции.

  9. Дана матрица А (N,N). Построить матрицу С, у которой Cij = 1, если в i-ой строке и j-ом столбце матрицы А нет 0, и Cij = Aij - в противном случае. Использовать функции.

  10. Найти в матрице В минимальный из нечетных элементов и его ин­декс. Использовать функции.

  11. Дана матрица А(N,N). Сформировать массив В, i-я компонента которого равна 1, если в i-й строке матрицы А нет повторяющихся элементов, и 0 в противном случае. Напечатать исходную матрицу А, массив В, повторяющиеся элементы с номерами строк и столбцов. Использовать функции.

  12. Даны две матрицы А и В. Построить таблицу функции y=cx2+d для каждого x от 0 до 1, где c- след матрицы А, d- след матрицы В. Написать функцию для вычисления следа матрицы.

  13. Заданы три матрицы A, В и С. Упорядочить по убыванию три числа x, y и z, где x –максимальный элемент матрицы А, y- максимальный элемент матрицы B, z – максимальный элемент матрицы C. Написать функции для поиска максимального элемента матрицы и ввода матрицы.

  14. Заданы три матрицы A, В и С. Решить уравнение px2+dx+r=0, где р - минимальный элемент матрицы А; d - минимальный элемент матрицы B; r - минимальный элемент матрицы C. Написать функции для поиска минимального элемента матрицы и ввода матрицы.

  15. Для каждого столбца прямоугольной матрицы определить разность между суммой элементов, стоящих на нечетных местах, и суммой элементов, стоящих на четных местах. При этом учесть, что количество строк в матрице может быть как четное, так и нечетное. Определение разности между суммой элементов, стоящих на четных местах, и суммой элементов, стоящих на нечетных местах для каждого столбца оформить функцией.

  16. Заданы три матрицы A, В и С. Найти минимальное из трёх чисел x, y, z, где x – след матрицы А, y- след матрицы B, z - след матрицы C. Написать функцию для вычисления следа матрицы.

  17. Заданы две матрицы А(N,N) и В(N,N). Найти след матрицы, равной произведению АВ, и след матрицы, равной произведению ВА. Вычисление произведения двух матриц оформить в виде функции.

  18. Дана матрица А(N,N). Переставить столбцы по возрастанию элементов первой строки. Перестановку двух столбцов оформить функцией.

  19. Столбцы прямоугольной матрицы, одинаково удаленные от ее вертикальной оси симметрии переставить так, чтобы первым был столбец с большей суммой модулей его элементов. Определить количество таких перестановок. Перестановку двух столбцов оформить в виде функции.

  20. Элементами прямоугольной матрицы являются целые числа, имеющие положительное или отрицательное значение. В каждой строке матрицы переставить местами элементы Aij и Aik, которые в сумме имеют нулевое значение, и определить общее количество указанных перестановок в матрице. Перестановку местами элементов Aij и Aik в строке оформить с помощью функции.

  21. Для прямоугольной матрицы определить, сколько пар ее столбцов содержат одинаковое количество отрицательных элементов. Поиск количества отрицательных элементов столбца оформить с помощью функции.

  22. В прямоугольной матрице рассмотреть квадратные подматрицы размерностью 1, 2,…, n, причем для всех подматриц левым верхним элементом является элемент A11 исходной матрицы, и определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение. Определение среднего арифметического элементов каждой подматрицы оформить с помощью функции.

  23. Дана матрица А(N,M), состоящая из нулей и единиц. Подсчитать количество нулей в каждой строке, и если это количество больше значения заданного С, удалить всю строку. Удаление i – строки оформить с помощью функции.

  24. В прямоугольной матрице часть элементов имеет нулевые значения. Заменить каждый такой элемент суммой смежных ему элементов. Примечание: угловые элементы матрицы имеют два смежных элемента; элементы, расположенные на периметре матрицы, но не являющимися угловыми, имеют три смежных элемента; остальные элементы матрицы имеют по четыре смежных элемента. В программе предусмотреть использование функции.

  25. Составить программу, которая из исходной матрицы А(N,N) удаляет все столбцы и строки, содержащие хотя бы один нулевой элемент. Удаление строк и столбцов оформить с помощью функции.

  26. Дана матрица А(N,N). Написать программу, которая проверяет, является ли данная матрица магическим квадратом (в магическом квадрате сумма элементов по строкам, столбцам и главным диагоналям одинакова). Написать функцию вычисления сумм элементов матрицы по строкам, столбцам и главным диагоналям.

  27. Дана матрица целых чисел. Возвести в квадрат элементы тех строк, для которых сумма элементов четная. Возведение в квадрат элементов i – строки оформить с помощью функции.

  28. В прямоугольной матрице, имеющей четное количество строк, переставить каждую строку 1 и 2, 3 и 4 и т.д. так, чтобы первой была строка с меньшей суммой элементов. Определить количество таких перестановок. Использовать функции.

  29. Дана матрица А(N,N). Сформировать массив y из диагональных элементов матрицы А. Вывести массив y и макимальный элемент массива y.

  30. Все элементы прямоугольной матрицы - целые положительные числа. Если сумма элементов j - го столбца нечетная, увеличить значение последнего элемента столбца на 1. Использовать функции.

  31. Дана двоичная матрица A(N,N). Подсчитать количество единиц в каждой строке матрицы. Поменять местами строку с максимальным числом единиц с первой строкой, а строку с минимальным числом единиц - с последней матрицы. Вычисление числа единиц в строке оформить с помощью функции.

  32. Заданы две матрицы A(4,4) и B(7,7). Выяснить и напечатать, сколько из них являются симметрическими. Матрица называется симметрической, если транспонированная (i - ая строка заменяется i-ым столбцом) матрица равна исходной. Написать функцию транспонирования матрицы.

  33. Составить программу, которая в исходной матрице A(N,M) заменяет все элементы нулями тех строк и столбцов, в которых встречается хотя бы один нулевой элемент. Замену элементов нулями оформить в виде функции.

  34. Дана матрица А(N,M). Определить в каждой строке минимальный элемент и занести его в массив М, а номер столбца минимального элемента занести в массив J. Полученные элементы расположить в порядке возрастания. Напечатать исходную матрицу, массивы минимальных элементов и их номеров. Использовать функции.

  35. Дана матрица А(N,N). Переставить эле­менты матрицы так, чтобы максимальный в строке элемент стал диагональным. Использовать функции.

  36. В матрице А(N,M) найти элементы, равные некоторому заданному числу X. Как только такое число будет найдено, за­фиксировать его индексы и при дальнейшем просмотре матрицы столбцы, в которых найдены Aij = X, не рассматривать. Использовать функции.

  37. Дана матрица А(N,N). Найти сумму каждого столбца и занести их в массив В. Затем упорядочить вектор В по возрастанию числа отрицательных слагаемых. Исходные данные и результаты напечатать в наглядной форме. Использовать функции.

  38. Дана матрица А (N,N). Сформировать массив В, элемент которого

Напечатать исходные данные и результаты в наглядной форме. Использовать функции.

  1. Задана матрица А(N,М). Сформировать матрицу В(N,М), каждая строка которой должна быть получена из исходной строки матрицы путем упорядочения ее элементов в порядке убывания. Упорядочение элементов оформить в виде функции.

  2. Прямоугольная матрица имеет m строк и 3 столбца. Элементы строки определяют длины сторон треугольника a, b, c. Определить, сколько треугольников являются прямоугольными.

Указание . Вычислить c = max ( a, b, c ) ;

Треугольник является прямоугольным, если c2 - ( a + b )2 < E,

где E - заданная погрешность измерения.

В программе предусмотреть использование функции.

  1. Задана матрица А(N,М). Сформировать матрицу В(N,М), каждый столбец которой должен быть получен из соответствующего столбца матрицы А путем упорядочения ее элементов в порядке возрастания. Упорядочение элементов оформить в виде функции.

  2. Для прямоугольной матрицы А(N,М) определить среднее арифметическое значение S ее элементов, среднее квадратичное отклонение D, а также процент элементов матрицы, расположенных в интервале

(SD, S + D).

; (5)

. (6)

В программе предусмотреть использование функции.

  1. Элементами прямоугольной матрицы могут быть лишь числа -1, 0, 1. для каждого из столбцов матрицы выполнить следующее: если сумма элементов столбца не равна 0, то заменить часть нулевых элементов значением +1 или -1 так, чтобы указанная сумма как можно меньше отличалась от 0. Вычисление суммы j-го столбца матрицы оформить в виде функции.

  2. Для каждой строки прямоугольной матрицы А(М,N) вычислить среднее квадратическое значение S и определить номер строки, имеющей минимальное значение S.

, где i = 1,…, М. (7)

Вычисление S каждой строки оформить в виде функции.

  1. К последнему элементу каждой строки прямоугольной матрицы прибавить такое значение, чтобы сумма элементов в строке была нулевой. Сформировать вектор, i-я компонента которого равна разности между суммой элементов в i-й строке до преобразования матрицы и суммой элементов в этой же строке после преобразования (i = 1,…,n). Формирование i-й компоненты вектора оформить в виде функции.

  2. Если максимальный элемент i-й строки матрицы больше остальных элементов данной строки, а минимальный элемент меньше суммы остальных элементов строки, то заменить их полусуммой значений Aimin и Aimax, в противном случае строку матрицы оставить без изменения. Подсчитать количество строк матрицы, в которых произведена указанная выше замена. Поиск максимального и минимального элемента каждой строки оформить в виде функции.

  3. Для каждой строки прямоугольной матрицы определить максимальное значение для сумм пар рядом стоящих элементов строки (Аi1 + Аi2, Аi3 + Аi4,…), а также номер первого элемента пары, определяющей такую сумму. Если количество столбцов матрицы нечетное, то в качестве последней суммы принять значение элемента Аin. Вычисление суммы пар стоящих рядом элементов оформить в виде функции.

  4. Дана вещественная матрица A(5,5). Переменной Y присвоить значение, равное скалярному произведению строки и столбца (рассматриваемых как вектора), на пересечении которых находится наименьший элемент матрицы (в предположении, что он единственный). Поиск минимального элемента оформить в виде функции.

  5. Пусть дана целочисленная матрица А(5,5) и вектор В(5). Составить программу сортировки строк в матрице так, чтобы в качестве первой строки была строка, расстояние между которой и вектором В минимально. Далее на втором месте строка, расстояние которой от первой строки минимально и т.д.

Расстояние между двумя строками C и D размерности N определяется по формуле

. (8)

Расчет расстояния оформить в виде функции.

  1. Дана вещественная прямоугольная матрица А и логический вектор В. Строку с номером k матрицы А назовем «особой», если Вk равна 1, и «неособой» - в противном случае. Составить программу подсчета числа отрицательных элементов матрицы А, расположенных в особых строках. Алгоритм определения номера особой строки оформить в виде функции.

  2. Дана вещественная матрица А(6,6).Построить вектор В(6) по правилу: если Аii<0, то в качестве Вi принять сумму элементов строки с номером i, предшествующих первому по порядку отрицательному элементу; если Аii≥0, то в качестве Вi принять сумму последних элементов строки с номером i, начиная с первого по порядку неотрицательного элемента. Подсчет суммы элементов оформить в виде функции.

  3. Для прямоугольной матрицы сформировать массив В. Элементу Вi присвоить значение 1, если в i-й строке имеется не менее двух подряд идущих нулевых элементов, в противном случае - Вi = 0. Анализ строки на нулевые элементы оформить в виде функции.

  4. Заданы четыре матрицы A, B, C, D. Составить программу вычисления матриц Е = A + B, F = C + D. Алгоритм сложения двух матриц оформить в виде функции. Матрицы имеют размерность A(4,3), B(4,3), C(3,5), D(3,5), Е(4,3), F(3,5). Ввод исходных матриц и вывод результирующих осуществляется в главной программе.

  5. Вычислить , где Xi – скалярное произведение i-й строки матрицы А на столбец, содержащий первый по порядку наибольший элемент данной строки. Вычисление элементов вектора X оформить в виде функции.

  6. Дана матрица целых чисел. Представить каждую строку матрицы в «сжатом» виде и поменять местами строку с максимальным количеством несовпадающих элементов со строкой с минимальным количеством несовпадающих элементов. «Сжатие» строки матрицы оформить в виде функции. «Сжатие» - замена одинаковых элементов нулями.

  7. Дана матрица A(N,М). Написать программу, которая осуществляет циклический сдвиг строк. Количество и направление сдвигов определяется величиной и знаком минимального элемента матрицы: для отрицательного элемента матрица сдвигается вниз, для положительного – вверх. Циклический сдвиг матрицы на одну строку вверх или вниз оформить в виде функции. Напечатать исходную и преобразованную матрицы, количество и направление сдвигов.

  8. Дана матрица В(N,N). Распечатать ее. Напечатать слова:

- «возрастающая», если все строки матрицы есть возрастающие последовательности;

- «убывающая», если все строки матрицы есть убывающие последовательности;

- «переменная», во всех остальных случаях.

Определение типа упорядоченности последовательности оформить в виде функции.

  1. Определить, имеются ли в прямоугольной матрице линейно зависимые строки и подсчитать количество пар таких строк.

Примечание. Строки i и k линейно зависимы, если

.

В программе предусмотреть использование функции.

  1. Вычислить P = (X1 + X2 + X3)X2 + (X2 + X3 + X4)X3 +…+(Xn-2 + Xn-1 + Xn)Xn-1, где Xi – средние арифметические значения элементов соответствующих строк заданной матрицы А. Вычисление элемента вектора X оформить в виде функции.

  2. Дана матрица А(N,N) и вектор С(N). Построить вектор В, i-я компонента которого Вi = 1, если сумма элементов i-й строки матрицы А больше Сi. Напечатать исходные данные и результаты в наглядной форме и с заголовками. Проверку элементов одной строки оформить в виде функции.

  3. Для прямоугольной матрицы целых чисел сформировать массив В(N), элемент Вj равен произведению четных чисел j-го столбца. Если в j-м столбце нет таких элементов, то положить Вj = 1. В программе предусмотреть использование функции.

  4. Задана целочисленная матрица А(N,N). Известно, что среди ее элементов два и только два равны между собой. Составить программу нахождения координат этих элементов. В программе предусмотреть использование функции.

  5. Составить программу формирования по вещественной квадратной матрице А(N,N) массива В(N) по правилу: Вj = 1, если в строке с номером i матрицы есть хотя бы один отрицательный элемент, и значение 0 – в противном случае. В программе предусмотреть использование функции.

  6. Составить программу построения по целочисленной матрице А(N,N) логического вектора В, присвоив элементу Вk значение 1, если в строке с номером k матрицы А положительных элементов не меньше числа отрицательных элементов, и значение 0 – в противном случае. Формирование одного элемента вектора В оформить в виде функции.

  7. Задана вещественная квадратная матрица А(N,N). Составить программу присвоения переменной Y значения, равного скалярному произведению строки l и столбца q (рассматриваемых как векторы), на пересечении которых находится наименьший элемент матрицы (в предположении, что такой элемент единственный)

.

В программе предусмотреть использование функции.

  1. Заданы матрица А(N,М) и значение X. Составить программу формирования вектора В путем переписывания в него первых элементов каждой строки матрицы А, больших X. Если в строке нет элемента, большего X, то записать 0 в вектор В. В программе предусмотреть использование функции.

  2. В каждом столбце прямоугольной матрицы определить значение и номер элемента, в наибольшей степени отличающегося от среднего арифметического значения элементов данного столбца. В программе предусмотреть использование функции.

  3. Задана матрица А(N,М). Вычесть из всех элементов матрицы минимальный элемент. Использовать функции.

  4. Матрица содержит седловую точку Aij, если Aij является минимальным в i-й строке и максимальным в j-м столбце. Найти все седловые точки и номера строк и столбцов, в которых они находятся. Использовать функции.

  5. Даны две матрицы А(N,М) и В(L,K). Поменять местами максимальные элементы матриц А и В. (Считать, что в каждой матрице только один максимальный элемент). Использовать функции.

  6. В каждой i-й строке прямоугольной матрицы найти k - количество элементов Ai,j, превышающих по значению полусумму элементов Ai,j-1 и Ai,j+1, смежных с элементами Ai,j. Определить номер строки, имеющей максимальное значение k. В программе предусмотреть использование функции.

  7. Написать две функции определения минимального и максимального значений в заданном двухмерном массиве.

  8. Для прямоугольной матрицы вычислить

где zi – максимальный элемент i-й строки,

xj – минимальный элемент j-го столбца

Использовать функции.

  1. Найти убывающую последовательность чисел, составленную из максимальных элементов матрицы по столбцам. Напечатать исходную матрицу, максимальные элементы с индексами и полученную последовательность в наглядной форме. Поиск максимального элемента в столбце оформить в виде функции.

  2. Каждые два смежных элемента i-й строки прямоугольной матрицы (i=1,…,m) расположить в порядке убывания, т.е. для данной строки должно выполняться условие Аi1≥ Аi2, Аi3≥ Аi4, … определить общее количество перестановок, произведенных в матрице.

  3. Для каждого столбца прямоугольной матрицы подсчитать сумму входящих в него элементов и определить, имеются ли столбцы с одинаковой суммой. Подсчитать количество пар таких столбцов.

  4. Написать функцию, которая меняет местами первую строку и последний столбец квадратной матрицы.

  5. Написать функцию, которая складывает первую и последнюю строки квадратного массива и записывает результат в первый столбец.

  6. Написать функцию, которая меняет значения диагональных элементов квадратной матрицы на значения соответствующих элементов заданного одномерного массива.

  7. Написать функцию, которая складывает соответствующие элементы заданных массивов и заносит результаты в третий массив. Все три массива имеют одинаковые размерности.

  8. Написать функцию, которая меняет местами диагонали квадратной матрицы.

  9. Написать функцию, которая суммирует элементы строк двухмерного массива и заносит результаты в одномерный массив, размерность которого равна числу строк двухмерного массива.

  10. Написать функцию, которая находит и возвращает в вызывающую программу максимальный по модулю элемент заданного двухмерного массива.

  11. Написать функцию, которая меняет местами последнюю строку и первый столбец квадратной матрицы.

  12. Написать функцию, которая складывает первый и последний столбцы квадратного массива и записывает результат на место первой строки.

  13. Написать функцию, которая меняет значения элементов заданного столбца квадратной матрицы на значения соответствующих элементов одномерного массива.

  14. Написать функцию, которая перемножает соответствующие элементы двух заданных массивов и заносит результаты в третий массив.

  15. Написать функцию, которая суммирует элементы столбцов двухмерного массива и заносит результаты в одномерный массив, размерность которого равна числу столбцов двухмерного массива.

  16. Написать функцию, которая находит и возвращает в вызывающую программу номер строки заданного двухмерного массива, имеющего максимальную по модулю сумму элементов.

  17. Написать функцию, которая для заданных двухмерных массивов А, В и С типа double одинаковой размерности вычисляет массив D по формуле .

  18. Написать функцию, которая для заданного двухмерного массива вычисляет и возвращает значение среднего арифметического элементов k-го столбца и n-й строки.

  19. Написать функцию, которая располагает столбцы заданного в качестве параметра двухмерного массива целого типа в порядке убывания сумм их элементов.

  20. Написать функцию, которая вычисляет сумму квадратов элементов заданной строки. Номер строки передается в функцию в качестве параметра.

  21. Написать функцию, которая для заданных двухмерных массивов А, В, С целого типа одинаковой размерности вычисляет массив вещественного типа D по формуле .

  22. Написать функцию, получающую в качестве параметров два массива целого типа произвольного размера и возвращающую порядковый номер массива, среднее арифметическое значение элементов которого максимально.

  23. Написать функцию, которая располагает строки заданного в качестве параметра двухмерного массива целого типа в порядке возрастания сумм их элементов.

  24. Написать функцию, которая вычисляет сумму элементов, лежащих на обеих диагоналях квадратной матрицы.

  25. Найти убывающую последовательность чисел, составленную из максимальных элементов матрицы по столбцам. Напечатать исходную матрицу, максимальные элементы с индексами и полученную последовательность в наглядном виде. Использовать функции.

  26. Дана матрица В(N,N). Получить матрицу С(N,N), где

.

Получение оформить в виде функции.

На печать вывести исходную и полученную матрицы, а также

значения для каждой строки В.

  1. Задано М векторов размерности N. Найти максимальное из всех попарных скалярных произведений. Вычисление одного скалярного произведения оформить в виде функции. Напечатать исходные векторы, все скалярные произведения.