Смекни!
smekni.com

Операции с матрицами (стр. 2 из 2)

Процедура умножения матрицы на число

нет

5. Листинг

label start,startA,startB,startC,startD;

type matrix = array[1..10,1..10] of integer;

var N,M,i,j,k,code: integer;

var A,B,C,D,E,X,Xtmp1,Xtmp2 : matrix;

varinput : string;

{процедура сложения матриц}

procedure Madd ( MA : matrix; MB : matrix);

begin

for i := 1 to N do begin

for j := 1 to N do begin

X[i,j] := MA[i,j] + MB[i,j];

end;

end;

end;

{процедура вычитания матриц}

procedure MSub ( MA : matrix; MB : matrix);

begin

for i := 1 to N do begin

for j := 1 to N do begin

X[i,j] := MA[i,j] - MB[i,j];

end;

end;

end;

{процедура умножения матрицы на число}

procedure MK ( MA : matrix; k : integer);

begin

for i := 1 to N do begin

for j := 1 to N do begin

X[i,j] := MA[i,j] * k;

end;

end;

end;

begin

Start:

writeln ('Введитеразмерматрицы(2-9)');

{примем размеры матриц}

readln (input);

val (input,N,code);

if code = 1 then begin

writeln ('Ошибка - нечисловое значение');

gotoStart;

end;

if (N > 9) or (N < 2) then

begin

writeln ('Неверный размер матрицы');

goto Start;

end;

StartA:

writeln ('Матрица A:');

for i := 1 to N do

for j := 1 to N do

begin

writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');

readln (input);

val (input,M,code);

if code = 1 then begin

writeln ('Ошибка - нечисловоезначение');

goto StartA;

end;

A[i,j] := M;

end;

StartB:

writeln ('Матрица B:');

for i := 1 to N do

for j := 1 to N do

begin

writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');

readln (input);

val (input,M,code);

if code = 1 then begin

writeln ('Ошибка - нечисловоезначение');

goto StartB;

end;

B[i,j] := M;

end;

StartC:

writeln ('Матрица C:');

for i := 1 to N do

for j := 1 to N do

begin

writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');

readln (input);

val (input,M,code);

if code = 1 then begin

writeln ('Ошибка - нечисловоезначение');

goto StartC;

end;

C[i,j] := M;

end;

StartD:

writeln ('Матрица D:');

for i := 1 to N do

for j := 1 to N do begin

writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');

readln (input);

val (input,M,code);

if code = 1 then begin

writeln ('Ошибка - нечисловоезначение');

goto StartD;

end;

D[i,j] := M;

end;

{ФУНКЦИЯ}

MSub (B,C);

MK (X,3);

Xtmp1 := X;

MK (D,4);

Msub (Xtmp1,X);

Madd (A,X);

for i := 1 to N do

begin

writeln (' ',i,'-ыйрядрезульт. м-цы: ');

for j:= 1 to N do begin

write (' ',X[i,j], ',');

end;

writeln ('');

end;

end.

6. Контрольный пример

Введите размер матрицы(2-9)

2

Матрица A:

Введите 1-ое значение 1-ого ряда

1

Введите 1-ое значение 2-ого ряда

1

Введите 2-ое значение 1-ого ряда

1

Введите 2-ое значение 2-ого ряда

1

Матрица B:

Введите 1-ое значение 1-ого ряда

2

Введите 1-ое значение 2-ого ряда

2

Введите 2-ое значение 1-ого ряда

2

Введите 2-ое значение 2-ого ряда

2

Матрица C:

Введите 1-ое значение 1-ого ряда

3

Введите 2-ое значение 1-ого ряда

3

Введите 2-ое значение 2-ого ряда

3

Матрица D:

Введите 1-ое значение 1-ого ряда

4

Введите 1-ое значение 2-ого ряда

4

Введите 2-ое значение 1-ого ряда

4

Введите 2-ое значение 2-ого ряда

4

1-ый ряд результ. м-цы:

-18, -18,

2-ый ряд результ. м-цы:

-18, -18,

При проверке X = A+3(B-C)-4*D получаем аналогичный результат.

7. Инструкция пользователю

После запуска программы пользователю предлагается выбрать размер матриц, с которыми он будет оперировать в дальнейшем. Допустимый диапазон – от 2 до 9.

При выборе размера матриц следует учесть, что большему размеру соответствует значительно большее количество элементов.

На вопрос: «Введите размер матрицы(2-9)» следует нажать клавишу соответствующей цифры, а затем <Enter>.

Затем появится следующее приглашение:

Матрица A:

Введите 1-ое значение 1-ого ряда

На что следует ввести значение обозначенного элемента матрицы A и нажать <Enter>.

Таким образом необходимо заполнить матрицы A,B,C и D.

После чего можно программа выдаст результат. Например:

1-ый ряд результ. м-цы:

-18, -18,

2-ый ряд результ. м-цы:

-18, -18,


Список литературы

1. http://www.btpascal.chat.ru/ - сайт.