Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник с исправлением.doc
Скачиваний:
55
Добавлен:
08.05.2015
Размер:
922.62 Кб
Скачать

3. Матрицы

3.1 Составить программу транспонирования квадратной матрицы.

3.2 Задана вещественная матрица A = { aij }, i = 1n, j = 1m. Составить программу формирования новой матрицы B = { bij }, i = 1n, j = 1m, каждая строка которой должна быть получена из соответствую­щей строки матрицы A путем упорядочения ее элементов в порядке убы­вания.

3.3 Составить программу построения по прямоугольной веществен­ной матрице A = { aij }, i = 1n, j = 1m логического вектора В = { bi }, i = 1 ¸ n, где bi имеет значение true, если наибольший элемент в строке с номером i матрицы A не больше заданного значения X, и значение falseв противном случае.

3.4 Составить программу формирования по вещественной квадратной матрице A = { aij }, i = 1 ¸ n, j = 1 ¸ m логического вектора В = { bi }, i = 1 ¸ n по правилу: bi присвоить значение true, если в строке с номером i матрицы есть хотя бы один отрицательный элемент, и значение falseв противном случае.

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

3.6 Заданы матрица A = { aij }, i = 1 ¸ n, j = 1 ¸ m и значение X. Составить программу формирования вектора B путем переписывания в него первых элементов каждой строки матрицы A больших X. Если в строке нет элемента, большего X, то записать ноль в вектор B.

3.7 Задана вещественная квадратная матрица A = { aij }, i, j = 1 ¸ n. Составить программу присвоения переменной y значения, равного скаляр­ному произведению строки k и столбца l (рассматриваемых как векторы), на пересечении которых находится наименьший элемент матрицы (в предположении, что такой элемент единственный)

n

y = al i x ai k .

i=1

3.8 Задана вещественная квадратная матрица A = { aij }, i, j = 1 ¸ n. Составить программу вычисления суммы элементов матрицы A, располо­женных в строках с отрицательным элементом на главной диагонали.

3.9 Составить программу построения по целочисленной матрице A = { aij }, i = 1 ¸ n, j = 1 ¸ m логического вектора В = { bi }, i = 1 ¸ n, присвоив элементу bi значение true, если в строке с номером i матрицы A число положительных элементов не меньше числа отрицательных элементов, и значение false в противном случае.

3.10 Задана вещественная квадратная матрица A = { aij }, i = 1 ¸ n, j = 1 ¸ m. Составить программу построения вещественного вектора В = { bi }, i = 1 ¸ n по правилу: если aii <0, то в качестве bi принять сумму элементов стро­ки с номером i, предшествующих первому по порядку отрицательному эле­менту; если aii 0, то в качестве bi принять сумму последних элементов строки с номером i, начиная с первого по порядку неотрицательного элемента.

3.11 Составить программу сортировки строк в вещественной квадратной матрице A = { aij }, i, j = 1 ¸ n по возрастанию значений сумм элементов строк.

Пояснения к программе

Суммы строк матрицы формируются в массиве S. Затем выполняется сортировка массива сумм строк: отыскивается индекс K максимального элемента и его место занимает последний элемент (его индекс — L), после чего меняются местами K-ая и L-ая строки в исходном массиве A, затем этот метод применяется к оставшимся строкам, кроме последней (она уже находится на своем месте) и т.д.

program SORT (input, output);

Type

Matrix = Array [1..10, 1..10] of Real;

Var

i, j, K, L : Integer; {параметры циклов и индексы}

N : Integer; {порядок матрицы}

A : Matrix; {исходная матрица}

S : Array [1..10] of Real; {суммы элементов строк}

R : Real; {промежуточная переменная}

Begin

Repeat

Writeln ('Введите порядок матрицы N, N <= 10');

ReadLn ( N )

Until N in [2..10];

Writeln ( 'Введите матрицу по строкам');

for i := 1 to N do

for j := 1 to N do

Read ( A[i,j] );

{Вывод исходной матрицы}

Writeln ('Исходная матрица A');

for i := 1 to N do

Begin

for j := 1 to N do

Write ( A[i,j] :8:1 );

Writeln

end;

{подсчет сумм элементов строк}

for i := 1 to N do

Begin

S[i] := 0;

for j := 1 to N do

S[i] := S[i] + A[i,j]

end;

{сравнение сумм и перестановка строк}

for i := 1 to N-1 do

Begin

K := 1; L := N - i + 1;

for j := 2 to L do

if S[ j ] > S[ K ] then

K := j;

{замена суммы переставляемой строки}

S[ K ] := S[ L ];

{перестановка строк через буферную переменную}

for j := 1 to N do

Begin

R := A[K,j];

A[K,j] := A[L,j];

A[L,j] := R

end

end;

{Вывод результирующей матрицы}

Writeln ('Отсортированная матрица');

for i := 1 to N do

Begin

for j := 1 to N do

Write ( A[i,j] :8:1 );

Writeln

End

End.

3.12 Получите целочисленную матрицу А размером nxm, для которой аij = i + 2j.

3.13 Пусть дана вещественная матрица размером nxm, в которой есть ненулевые элементы. Получите новую матрицу путем деления всех элементов дан­ной матрицы на ее наибольший по модулю элемент.

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

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

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

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

3.18 Пусть дана вещественная матрица размером nxm, все элементы которой раз­личны. В каждой строке выберите элемент с наименьшим значением, затем среди этих чисел выберите наибольшее. Укажите индексы найденного эле­мента.

3.19 Пусть дано натуральное число п и целочисленная квадратная матрица по­рядка п. Получите b1 , b2 , ..., bn, где bi это:

а) значение первого по порядку положительного элемента i-й строки (если таких элементов нет, то принять bi = 1);

б) сумма элементов, расположенных за первым отрицательным элементом в i-й строке (если все элементы строки неотрицательны или отрицатель­ный элемент на последнем месте, то принять bi = 100);

с) сумма элементов, предшествующих последнему отрицательному элементу i -й строки (если все элементы строки неотрицательны, то принять bi = -1).

3.20 Пусть дана целочисленная квадратная матрица порядка п. Найдите номера строк:

а) все элементы которых — нули;

б) элементы в каждой из которых одинаковы;

в) все элементы которых четны;

г) элементы каждой из которых образуют монотонную последовательность (монотонно убывающую или монотонно возрастающую);

д) элементы которых образуют симметричные последовательности.

3.21 Пусть даны натуральное число n, вещественное число х, вещественная мат­рица размером п х 2п. Получите последо­вательность b1 , b2 , ..., bn из нулей и еди­ниц, где bi = 1, если элементы i-й строки матрицы не превосходят х, и bi = 0 в противном случае.

3.22 Пусть дана вещественная квадратная матрица порядка п. В строках с отри­цательным элементом на главной диагонали найдите:

а) сумму элементов;

б) наибольший из элементов.

3.23 Пусть дана вещественная квадратная матрица порядка п. Относительно эле­ментов, расположенных в строках, начинающихся с отрицательного элемен­та, найдите суммы тех из них, которые расположены соответственно ниже, выше и на главной диагонали.

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

3.25 Пусть дана вещественная квадратная матрица порядка п. Получите х1 хп + х2 хп-1 + ... + хn х1, где хiнаибольшее значение элементов i-й строки данной матрицы.

3.26 Пусть даны натуральное число п>2 и вещественная квадратная матрица порядка п. Постройте последовательность b1 , b2 , ..., bn, из нулей и единиц, в кото­рой bi = 1 тогда и только тогда, когда:

а) элементы i-й строки матрицы образуют возрастающую последователь­ность;

б) элементы i-й строки матрицы образуют возрастающую или убывающую последовательность.

3.27 Пусть дана целочисленная квадратная матрица порядка п. Выясните, име­ются ли в матрице ненулевые элементы, и если имеются, то укажите индексы:

а) первого из нулевых элементов;

б) всех нулевых элементов.

3.28 Пусть даны натуральное число п и вещественная квадратная матрица по­рядка п. Постройте последовательность b1 , b2 , ..., bn, из нулей и единиц, в которой bi = 1 тогда и только тогда, когда в i-й строке матрицы есть хотя бы один от­рицательный элемент.

3.29 Пусть даны натуральные числа п и т, вещественное число x, вещественная матрица размером п х т. Получите значение b1xn-1 + b2xn-2 + ... + bn, где bk — пер­вый по порядку положительный элемент в k-й строке матрицы (k = 1,..., п); если в k-й строке нет положительных элементов, то bk = 0,5.

3.30 Пусть дана вещественная квадратная матрица порядка п. Вычислите сумму тех из ее элементов, расположенных на главной диагонали и выше ее, кото­рые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше ее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.

3.31 Будем называть соседями элемента с индексами i, j некоторой матрицы та­кие элементы, соответствующие индексы которых отличаются от i, j не более чем на единицу. Для данной целочисленной матрицы А размером п х т найдите матрицу В, состоящую из нулей и единиц, элемент которой bij равен единице, когда:

а) все соседи аij меньше самого элемента аij;

б) все соседи аij и сам элемент аij равны нулю;

в) среди соседей аij есть не менее двух элементов, совпадающих с аij .

3.32 Используя следующий фрагмент программы, заполните массив А по правилу

Aij = xij ;

Var

А : Array [1. .6, 1. .9] of Real;

X : Array [1..9] of Real;

3.33 Используя следующий фрагмент программы, получите массив В из массива А удалением пстроки и k-го столбца:

Var

А : Array [1..5, 1..7] of Real;

В : Array [1..4, 1..6] of Real;

n, k : 1..7;

3.34 Используя следующий фрагмент программы, из массива А получите массив В, присвоив его k-му элементу значение true, если выполнено указанное ниже условие, в противном случае присвойте значение false:

Var

А : Array [1..n, 1..n] of Real;

В : Array [1..n] of Boolean;

а) все элементы k-го столбца массива А нулевые;

б) элементы k-й строки массива А упорядочены по убыванию;

в) k-я строка массива А симметрична.

3.35 Определите количество «осо­бых» элементов массива, считая элемент «особым», если выполняются перечисленные ниже условия:

а) элемент больше суммы остальных элементов своего столбца;

б) в строке слева от элемента находятся элементы, меньшие его, а справа — большие.

3.36 Пусть дана вещественная матрица размером п х т. Упорядочьте ее строки по неубыванию:

а) первых элементов строк;

б) суммы элементов строк;

в) наибольших элементов строк.

3.37 Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером п х т напечатайте индексы всех ее седловых точек.

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

3.39 Определите, является ли заданная целая квадратная матрица п-го порядка ортонормированной, то есть такой, в которой скалярное произведение каж­дой пары различных строк равно 0, а скалярное произведение каждой стро­ки на себя равно 1.

3.40 По заданным коэффициентам а11, а12, ...,а1n, ..., а22 , а23,..., а2n, ...,аnn, (аii ≠ 0) и правым частям b1 , b2 , ..., bn найдите решение «треугольной» системы линейных уравнений:

а11 x1 + а12  x2 + а13  x3 + ... + а1n xn = b1 ,

а22  x2 + а23  x3 + ... + а2n xn = b2 ,

а33  x3 + ... + а3n xn = b3 ,

… ,

аnn xn = bn